Ответ 1
Вы должны привязать себя так:
$("#id").bind("pluginnameclick", function(){
Я разработал jQuery ui-plugin и не могу понять, какой из этих методов использовать. Согласно документации jquery ui, я должен использовать _trigger для запуска событий, это позволяет инициализировать обработчики с помощью плагина типа
$("#id").pluginname({
click: function(){
//called when clicked
}
});
Но если позже я захочу добавить больше слушателей к этому событию, я не смогу найти способ сделать это. Я пытаюсь использовать jquery bind, но это не работает. Пример:
$("#id").bind("click", function(){
//This does not get fired on click if using _trigger
})
Единственное решение, которое я имею до сих пор, - это огонь обоих, но это странно. Мой код должен выполнять следующие действия:
$("#id").pluginname({
click: function(){
//called when my plugin uses this._trigger('click')
}
}).bind(function(){
//called when my plugin uses this.element.trigger('click')
});
Я использую пользовательские события, но не думаю, что это было важно для запроса этого вопроса. Кто-нибудь знает, как использовать цепочку событий при использовании _trigger()?
Вы должны привязать себя так:
$("#id").bind("pluginnameclick", function(){
вы должны использовать this._on
и this._trigger
для этого, чтобы события очищались при уничтожении виджета.
в противном случае вам нужно отменить события самостоятельно или иначе виджет не будет очищен мусорной коллекцией браузера.
надеюсь, что это ответит на ваш вопрос