我想知道是否有人以前遇到过这个问题,或者可以告诉我我的代码有什么问题。
我在 mouseenter 上有一个按钮,可以加宽和更改文本。在 mouseleave 时,它会恢复到原来的状态。
我在这里设置了一个jsfiddle。这是相关代码(缩写):
var labelChanger = function (off, on) {
$el.off('mouseenter').off('mouseleave');
$el.mouseenter(function (e) {
e.stopPropagation();
changeContent(on);
$(this).animate({'width': '70%'}, 50);
}).mouseleave(function (e) {
e.stopPropagation();
changeContent(off);
$(this).animate({'width': '50%'}, 50);
});
};
它工作正常,但是发生了一件奇怪的事情,如果鼠标从顶部或底部进入盒子,它可能会进入鼠标的任何移动都会触发 mouseenter 事件的状态(大约 25% 的时间会发生这种情况。 ) 你可以看到它被元素“闪烁”触发,我在它下面添加了一个日志。
但如果鼠标从侧面进入,它是稳定的,会按预期动作。
有人知道为什么吗???我难住了。