2015-04-01 43 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(); 
    }); 
}); 
相關問題