Как привязать событие к динамически создаваемым элементам в плагине jquery? - PullRequest
1 голос
/ 09 января 2011

Я создаю плагин и у меня возникли проблемы:

в случае:

У меня есть список un-list, созданный загруженным ajax .such as:

<ul id='ulist'>
    <li>list 1</li>
    <li>list 2</li>
    <li>list 3</li>
</ul>

затем li были связаны с событием зависания при загрузке. такие как:

$('ul').bind('hover',function(){});

но мой плагин имел функцию для динамического добавления нового элемента li в ul [id = 'ulist'], который был загружен . И новый li не получил событие hover переплет . Такой как:

addNewLi : function(){
    $('<li />').html('item N').appendTo('#ulist');
}

Итак, я знал, что должен связать новые динамически созданные элементы с помощью 'live' , но я не знаю, куда его поместить или каким-то другим способом ....

Большое спасибо !!

1 Ответ

1 голос
/ 09 января 2011

Вы не можете использовать функции двойного обработчика hover в live или delegate.Я полагаю, что эта функциональность запланирована для jQuery 1.5.

Однако hover - это всего лишь ярлык для двух событий mouseenter и mouseleave, поэтому на самом деле очень легко имитировать эту функциюэти события.

Пример использования delegate:

$('#ulist').delegate('li', 'mouseenter', function() {
    // code for mouseenter
}).delegate('li', 'mouseleave', function() {
    // code for mouseleave
});
...