Как получить доступ к другим свойствам виджета из функции нажатия кнопки?

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));
Теги:
jquery-widgets

1 ответ

0
Лучший ответ

Проблема возникает из-за того, что объект кнопки из функции click() не имеет прямого доступа к создателю виджета. Есть много способов решить эту проблему. Я предлагаю вам связать обратный вызов click с this._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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню