我基本上遇到了< li>的问题。项目,我正在运行插件,它动态地将数据标签ID添加到data- *属性。
由于某种原因,这意味着所有项目都是动态添加的,而我在同一列表元素上运行的另一项功能将无法运行,因为该事件未动态附加。
会发生什么: 1)页面渲染 2)我的'其他'在DOM加载时可以使用该功能 3)页面加载,插件代码可用,但我的其他'功能(添加悬停框标题,来自下方并动画起来)不再有效。所以它基本上可以工作,直到另一个插件开始。
到目前为止,我的发现是:
我可以使用jQuery' on'动态地将事件附加到动态编辑/创建的项目(#stage li项目)。使用这个:
$('body').on('hover', '#stage li', function() {
// Do dynamic stuff
}
但这仅适用于1个悬停,并没有给我一个我真正需要的mouseenter / mouseout解决方案。有没有人对如何做到这一点有任何想法?
答案 0 :(得分:3)
烨:
$('#stage').on({
mouseenter: function(){
// do mouseentery shtuff
},
mouseleave: function(){
// mouse bye bye
}
},'li');
从body
更改.on()事件绑定到#stage
并从那里过滤li
,因为它会更快。
以这种方式(XML方式)这样做很酷的事情就是你可以轻松地添加更多的东西...添加一个mousemove函数只是在同一个项目下面的另一个逗号和函数,所有这些都包含在一个.on()绑定。 :)
答案 1 :(得分:0)
这就是你要找的东西。另请注意,自jQuery 1.9起不再支持悬停
$('mydiv').on('mouseenter', '#stage li', function( event ) {
// do something
}).on('mouseleave', '#stage li', function( event ) {
// do something different
});