jQuery是否具有用于mouseenter或mouseout的on / live悬停功能?

时间:2013-02-26 21:31:36

标签: javascript jquery

我基本上遇到了< li>的问题。项目,我正在运行插件,它动态地将数据标签ID添加到data- *属性。

由于某种原因,这意味着所有项目都是动态添加的,而我在同一列表元素上运行的另一项功能将无法运行,因为该事件未动态附加。

会发生什么: 1)页面渲染 2)我的'其他'在DOM加载时可以使用该功能 3)页面加载,插件代码可用,但我的其他'功能(添加悬停框标题,来自下方并动画起来)不再有效。所以它基本上可以工作,直到另一个插件开始。

到目前为止,我的发现是:

我可以使用jQuery' on'动态地将事件附加到动态编辑/创建的项目(#stage li项目)。使用这个:

$('body').on('hover', '#stage li', function() {
    // Do dynamic stuff
}

但这仅适用于1个悬停,并没有给我一个我真正需要的mouseenter / mouseout解决方案。有没有人对如何做到这一点有任何想法?

2 个答案:

答案 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
});