如何从按钮单击功能访问其他小部件属性?

时间:2014-04-15 17:24:19

标签: jquery jquery-widgets

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

(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));

1 个答案:

答案 0 :(得分:0)

问题来自于click()函数的button对象无法直接访问widget创建者。有很多方法可以解决这个问题。我建议你用click._on而不是pButton.click绑定点击回调,例如替换:

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

使用:

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

现在this回调中的click对象是小部件实例,而不是按钮,因此您可以调用小部件的功能。

您可以在此处进行测试:http://jsbin.com/yorunaji/1/edit?html,js,output