I got this to work and I wanted to share it in case it is helpful, or in 
case you have comments. First some explanation:

   - loading jquery in the .html puts the jquery library in the top 
   context, that is why it was not working out of the box for me
   - pyjs is creating the components in the top document too
   - so now we have jquery in the top context, and the created component in 
   the top context. Since jQuery uses by the default the context in which it 
   was loaded to look for components, we just need to use the top jQuery. To 
   do that, we need the top. prefix.

The resulting code looks like this:

import pyjd # this is dummy in pyjs


from pyjamas.ui.HTML import HTML
from pyjamas.ui.RootPanel import RootPanel
from __pyjamas__ import JS


class jQueryTest:


    def onModuleLoad(self):
        html = HTML('<p><input type="hidden" id="aa10" style="width:300px" 
value="brown, red, green"/></p>')
        RootPanel().add(html)
        JS("""top.jQuery("#aa10").select2({tags:["red", "green", 
"blue"]});""")


if __name__ == '__main__':
    pyjd.setup("./public/jQueryTest.html")
    app = jQueryTest()
    app.onModuleLoad()
    pyjd.run()

And the related .html:

<html>
    <head>
        <script src="jquery-1.7.2.min.js"></script>
        <link rel="stylesheet" href="select2.css" />
        <script src="select2.js"></script>
        <meta name="pygwt:module" content="jQueryTest">
        <title>Test jQuery!</title>
    </head>
    <body bgcolor="white">
        <script language="javascript" src="bootstrap.js"></script>


    <iframe id='__pygwt_historyFrame' style='width:0;height:0;border:0'
></iframe>
    </body>
</html>

This is working with pyjs as standalone application. Now I have pyjs 
embedded in a web2py container. Let's see if I get this to work.

Regards,
Daniel

Reply via email to