Hi Daniel. I did some experiments calling python methods from javascript code. I think you need wrap your method callback into anonymous function (see setTimeout example)
Here are the examples: from __pyjamas__ import JS class Cls(): def __init__(self, name): self.name = name def sum(self, a, b): print "Met from %s instance" % self.name return a + b def touch(self): print "Touch called from %s instance." % self.name if __name__ == '__main__': c = Cls("foo") res = 0 # This works res = JS(""" @{{res}} = @{{c}}.sum(5,10) """) print res # This works JS(""" @{{c}}.touch() """) # This don't work JS(""" setTimeout(@{{c}}.touch, 3000) """) # This works JS(""" setTimeout(function(){@{{c}}.touch()}, 3000) """) --