Javascript 使用滚动条并右键单击可触发jQuery mouseleave
在ChromeV41中右键单击会触发jQuery mouseleave。这在Firefox中是不会发生的 另外,在windows中使用滚动条时会触发mouseleave,同样,Firefox中不存在此问题 铬有什么需要注意的吗 非常感谢您的帮助。如果需要更多信息,请发表评论 这就是我触发事件的方式Javascript 使用滚动条并右键单击可触发jQuery mouseleave,javascript,jquery,google-chrome,Javascript,Jquery,Google Chrome,在ChromeV41中右键单击会触发jQuery mouseleave。这在Firefox中是不会发生的 另外,在windows中使用滚动条时会触发mouseleave,同样,Firefox中不存在此问题 铬有什么需要注意的吗 非常感谢您的帮助。如果需要更多信息,请发表评论 这就是我触发事件的方式 $("body").on("mouseleave", function(){ alert(); }); 我已经找到了解决你问题的办法。看看这个 我已经附加了带有body的mousedown
$("body").on("mouseleave", function(){
alert();
});
我已经找到了解决你问题的办法。看看这个
我已经附加了带有body的
mousedown
事件,该事件在右键单击body时向body添加了一个类<在本例中,code>mouseleave在mouseout
之后调用,因此它检查类是否仍然附加到主体。如果为true,则不会显示任何警报。(这是一个修复而不是解决方案:()您可以通过在触发mouseleave事件时检查鼠标位置来解决此问题
在我的例子中,我只想在鼠标移动到文档上方时触发事件,所以我只检查鼠标的Y位置是否小于0
这也会在单击鼠标右键时停止触发事件
此处的完整详细信息:能够查看您的代码将对此处有很大帮助。使用代码更新了问题。请检查。仍不知道为什么问题被否决。看起来像是Chrome错误。滚动条是合乎逻辑的,但在Chrome中单击鼠标右键(在显示菜单之前发出警报)时会做出响应似乎有点奇怪。当你右键点击然后点击鼠标移动时,它无法被捕获。我已经更新了小提琴。它在右键点击时显示了
,因为如果你点击它mousedown
,它将被触发。我忘了把控制台。如果clauseYeah得到它,我会把记录在中。谢谢:)最好的答案!干杯是的,没错。但这将需要浏览器计算每次鼠标移动的Y位置,这将再次消耗GPU。
$("body").on("mousedown", function(e){
if(e.which==3)
{
$(this).addClass("right");
console.log("From Right Click");
}
}).on("mouseleave", function(e){
if($(this).hasClass("right"))
{
console.log("it is right clicked");
$(this).removeClass("right");
return;
}
alert();
$(this).removeClass("right");
console.log(e.which+"From Mouseleave");
});