滚动导致mouseleave在IE中触发

时间:2013-07-22 20:03:51

标签: jquery mousewheel mouseleave

http://jsfiddle.net/bxB9C/

仅在IE中向上和向下滚动时会触发mouseleave

滚动浏览IE中示例中的黄色框以查看问题。

有没有办法阻止这种情况发生?

$("#box").mouseenter(function(){
$("#mouse").html("mouseenter");
}).mouseleave(function(){
$("#mouse").html("mouseleave");
});

$("#box").bind('mousewheel DOMMouseScroll MozMousePixelScroll', function(e){

var theEvent = e.originalEvent.wheelDelta || e.originalEvent.detail*-1

e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();

if(theEvent /120 > 0) {
$("#scroll").html("Scrolling Up");
}
else{
$("#scroll").html("Scrolling Down");

}
return false;
});

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用:

$("#box").hover();

答案 1 :(得分:0)

http://jsfiddle.net/bxB9C/2/

我想通了,虽然不确定是否有更好的方式

我把它放在滚动

scrollLock = true;
clearTimeout($.data(this, 'timer'));
$.data(this, 'timer', setTimeout(function() {
     scrollLock = false;
}, 250));

并在mouseleave上检查!scrollLock是否在采取行动之前