【问题标题】:Firefox spamming mouseenter event with jQuery animation带有 jQ​​uery 动画的 Firefox 垃圾邮件 mouseenter 事件
【发布时间】:2014-03-15 09:10:39
【问题描述】:

在 Firefox 中,出于某种奇怪的原因,当(通过 jQuery)在 mouseenter 或 mouseover 事件中为对象设置动画时,只要将鼠标悬停在元素上,该事件就会被发送垃圾邮件。如果您移动鼠标,它会更快地发送垃圾邮件(显然会触发更多事件)。这仅在 Firefox 中发生,并且仅在使用动画调用时发生。

这是一个演示问题的小提琴。 http://jsfiddle.net/52EKC/3/

/* CSS */
body {
    font-family: consolas;
}
#testarea {
    display: block;
    height: 100px;
    width: 300px;
}



<!-- HTML -->
<textarea id='testarea'></textarea><br/>
Event Fired: <span id='counter'>0</span> times



// JavaScript
var i = 0;
$('#testarea').on('mouseenter', function() {
   $('#counter').text(++i);
   $(this).animate({ width: 299 }, 200);
});

任何解决方法将不胜感激。

更新 看来此错误仅适用于文本区域和文本框。如果我用 div 替换文本区域,事件只会触发一次,正如预期的那样。因为我使用的是文本区域,所以我需要找到一种解决方法。任何建议将不胜感激。

【问题讨论】:

    标签: jquery firefox


    【解决方案1】:

    问题出在$(this).animate({ width: 299 }, 200); 如果你把它注释掉,它就完美了

    【讨论】:

    • 嗯...这违背了我的帖子的全部意义。为输入对象设置动画时,不应快速触发 mouseenter 事件。
    猜你喜欢
    • 1970-01-01
    • 2013-08-06
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 2020-08-03
    • 1970-01-01
    • 2018-02-24
    • 2012-07-02
    相关资源
    最近更新 更多