2015-04-01 102 views
0

我使用JSPlumb在div元素之间绘制线条。我添加了一个click事件处理程序,我初始化内部功能:jsplumb中的Click事件处理程序缺少“this”对象

init: function() { 
    jsPlumb.bind('click', function (connection, e) { 
     // I have the connection object, but not a this context 
    }); 
} 

这工作得很好,但我真的想有一个可用的事件处理程序内为好,与上下文init

回答

2

试试这个:

init: function() { 
    var that = this; 
    jsPlumb.bind('click', (function(that) { 
     return function (connection, e) { 
      // you can see that here 
     }; 
    }(this))); 
} 
+0

当我尝试访问“”从回归函数中,我得到它没有定义的错误。我可以看到连接对象。 – brinch 2015-04-01 21:37:14

+0

你确定,init函数中的'this'是被定义的吗? – 2015-04-02 07:00:58

0

你可以尝试这样的:

var my_object = { 
    value: '234234', 
    init: function() { 
    var this_object = this; 
    jsPlumb.bind('click', function (connection, e) { 
     var _my_object = this_object; 
     var _jsPlumbInstance = this; 
    }); 
    } 
} 

$(function() { 
    jsPlumb.ready(function() { 
    // your code here 
    my_object.init(); 
    }); 
}); 
相关问题