JQuery鼠标hoverfunction多次触发
我一直在使用这种方法为整个类(按钮等)设置事件:
$("div.bigButton").mouseover(function() { this.style.backgroundColor = '#dfdfdf'; });
然而,在进行一些测试时,我注意到当将鼠标移动到这些对象上时,该function会激发3次! 当改变像backgroundColor这样的东西时这是不明显的,但是如果我添加一个警报就很明显了。
我有什么想法我做错了吗? 我担心这可能会对以后的性能产生影响。
谢谢
编辑:对不起,错过“风格”关闭是一个错字
HTML是:
Test
由于在HTML元素中嵌套,可能会发生这种情况。 jQuery文档在页面底部有一个完美的例子(不要混淆mouseover
和mouseenter
),以及一个防止这种不需要的行为的例子。 http://api.jquery.com/mouseover/
我发现设置按钮的function正在运行多次 (每次通过ajax传递页面内容)。 我原以为这会覆盖 ‘鼠标hover’function,但似乎它正在添加它!
感谢你的帮助
如果它是hover效果,你应该使用.hover
或.mouseenter
和.mouseleave
。
还要检查可能是您的问题的子元素冒泡的事件。
更新
通过尝试这个小提琴我似乎无法重现您的问题,所以您的问题在于您的HTML / JavaScript代码。 也许你连接手柄三次?