2014-04-15 34 views
0

我有一个简单的小工具按钮和一些属性和功能。如何在点击按钮时访问这些功能。如何从按钮点击功能访问其他小部件属性?

(function ($, undefined) { 
$.widget("test", { 

    _create: function() { 

     var pButton = this.element; 
     pButton.button(); 
     pButton.css({ width: this.options.buttonWidth }); 

     pButton.click(function() { this.function_test(); }); 



    }, 
    function_test: function() 
    { 
     alert("aa"); 
    } 

}); 
}(jQuery)); 

回答

0

问题出在click()函数的按钮对象没有直接访问widget创建者的事实。有很多方法可以解决这个问题。我建议您将click回调与this._on绑定,而不是pButton.click,例如更换:

pButton.click(function() { this.function_test(); }); 

有:

this._on(pButton, { 
    click: function() { this.function_test(); } 
}); 

现在click回调内部this对象是widget实例,而不是按钮,这样你可以调用控件的功能。您可以在此测试:http://jsbin.com/yorunaji/1/edit?html,js,output