JQuery UI _Trigger против триггера - PullRequest
       15

JQuery UI _Trigger против триггера

10 голосов
/ 05 августа 2011

Я разработал JQuery UI-плагин и не могу понять, какой из этих методов использовать. Согласно документации 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 ()?

Ответы [ 2 ]

10 голосов
/ 05 августа 2011

Вы должны связать так:

$("#id").bind("pluginnameclick", function(){
4 голосов
/ 18 сентября 2013

вы должны использовать this._on и this._trigger, чтобы сделать это, чтобы очистить события при удалении виджета.

в противном случае вам придется отменить привязку событий самостоятельно, иначе виджет не будет очищен сборщиком мусора браузера

надеюсь, что это отвечает на ваш вопрос

...