0

1 つのボタンといくつかのプロパティと機能を備えた単純なウィジェットがあります。ボタンクリックでこれらの機能にアクセスするにはどうすればよいですか。

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

1 に答える 1

0

この問題は、click() 関数のボタン オブジェクトがウィジェット クリエータに直接アクセスできないことに起因しています。それに対処する方法はたくさんあります。クリック コールバックを pButton.click の代わりに this._on にバインドすることをお勧めします。たとえば、次のように置き換えます。

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

于 2014-04-15T18:26:35.927 に答える