2010-11-23 74 views
2

如何从jquery回调中获取'MyClass'实例。从jquery回调中获取类实例

function MyClass(){  

    this.message = 'Hello World'; // I need access to this variable in the callback 

    //registering class member function as callback 
    $('div').draggable({drag:this.onDrag}); 

    this.onDrag = function(event,ui){ 

    alert(this.message); // 'this' is jquery object, not MyClass instance; 

    } 
} 

P.S.具有'MyClass'实例或将实例存储到数据中的全局变量是不可取的。

谢谢!

回答

4

这里最好的选择(IMO)是陪另一个参考,我更喜欢self,像这样:

function MyClass(){  
    var self = this; 
    this.message = 'Hello World'; // I need access to this variable in the callback 

    //registering class member function as callback 
    $('div').draggable({drag:this.onDrag}); 

    this.onDrag = function(event,ui){  
    alert(self.message); 
    } 
} 

另一种方法是用另一个插件的情况下搞乱你真的不控制时(再,国际海事组织)这不是真的有必要,在许多情况下,再次提及访问你的课程就如同容易和不那么容易混淆。

+0

哦,这真的很简单的解决方案。非常感谢尼克! – Coyod 2010-11-23 09:37:19