如何将事件重新绑定到jquery插件中的动态创建元素?

时间:2011-01-09 15:28:57

标签: jquery events plugins bind

我正在创建一个插件并遇到了一些问题:

在案件中

我有一个由ajax加载创建的非列表列表。例如:

<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 没有得到悬停事件绑定。例如:

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

所以,我知道我应该通过'live'绑定新动态创建的元素,但我不知道放在哪里或有其他方式....

非常感谢!!

1 个答案:

答案 0 :(得分:1)

您无法在hoverlive中使用delegate的双重处理程序功能。我认为,该功能是针对jQuery 1.5计划的。

但是,hover实际上只是两个事件mouseentermouseleave的快捷方式,因此使用这些事件模拟功能实际上很容易。

使用delegate的示例:

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