jQuery: использовать метод .live также для элементов / плагинов? - PullRequest
2 голосов
/ 05 декабря 2009

Я сделал простой виджет кнопки jQuery (плагин), который инициализируется так:

var cmd = $(".tButton");
cmd.tButton();

есть ли способ использовать .live для всех будущих кнопок (загрузка через ajax)?

ТНХ

Ответы [ 2 ]

0 голосов
/ 05 декабря 2009

Ответ на этот вопрос - Нет, хотя ответ dcneiner будет отличным, если все, что вы делаете, - это обработка событий. Если вы хотите внести другие изменения, вам не повезло.

live works, подключив обработчик событий к элементу документа. Поскольку события всплывают в js (они могут обрабатываться родителями элемента clicked / mouseover'd / etc), документ может обрабатывать события из каждого элемента на странице.

К сожалению, насколько я знаю, нет события для создания элемента, поэтому вы не можете автоматически запускать функцию при создании элемента. Живая jQuery не знает, что новая кнопка существует, пока она не нажата / mouseover'd / и т.д.

0 голосов
/ 05 декабря 2009

Можно, но просто будьте осторожны в том, что вы делаете. Если вы хотите автоматически повторно запустить код подключения плагина, то $.fn.live() - это не то, что вам нужно.

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

 $.fn.yourPlugin = function(){
     this.live('click', function(){...});
 }
...