【问题标题】:Internet Explorer 11: MouseUp triggered on Scrollbar-MouseDownInternet Explorer 11:在 Scrollbar-MouseDown 上触发 MouseUp
【发布时间】:2015-10-20 13:18:57
【问题描述】:

为了解决滚动条单击导致 onBlur-Event 的问题,我使用“mousedown”将单击标记为“在”我的 div 的“内部”,并且在 mouseup 时我将重置标记。

我不确定从什么时候开始(更新?)这种行为不再起作用了。我创建了一个小提琴来证明这一点:

http://jsfiddle.net/30x1jr6v/1/

$(document).mousedown(function (documentEventObject) {
    console.log('mousedown');
});
$(document).mouseup(function (documentEventObject) {
    console.log('mouseup');
});

如果您使用 chrome,mouseup 事件会在您释放滚动条上的鼠标按钮时触发。在 IE 11 中,mouseup 事件与 mousedown 事件一起触发...有人遇到过同样的问题吗?

版本:

  • Internet Explorer 11.0.10240.16431,更新版本:11.0.22 (KB3078071)
  • Windows 10

有趣的是,我还有一台装有 IE 11.0.9600.18059 的 Windows 7 笔记本电脑。那里我只在控制台中收到 mousedown 消息(即使我释放按钮也没有 mouseup)!

【问题讨论】:

  • 不,在IE11中我只得到滚动条上的mousedown事件,而释放时没有得到mouseup事件。
  • 真的吗?你有什么确切的版本?我将用我的版本更新我的问题...我在另一台具有相同行为的机器上进行了测试 - 两者都运行 Windows 10。

标签: javascript jquery html internet-explorer windows-10


【解决方案1】:

在此处回答您的评论,用于格式化。

  • IE 11.0.9600.18015C0 更新 11.0.23
  • Windows 7 企业版

我在工作,无法测试你的小提琴,所以改用这个。在每个版本的 JQuery 上都有相同的行为...

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js" type="text/javascript"></script> 
<script>
$(document).mousedown(function (documentEventObject) {
    console.log('mousedown');
});
$(document).mouseup(function (documentEventObject) {
    console.log('mouseup');
});
</script>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />

【讨论】:

  • 我通过制作一个 html 文件并使用 Chrome 和 IE11 打开它并使窗口变得如此之小以至于出现滚动条来测试您的脚本。结果与我的问题相同:在 Chrome 上,我分别获得 mousedown/mouseup - 在 IE 上,我在 mousedown 点击时获得 mousedown&mouseup。
【解决方案2】:

我使用计时器而不是 mouseup 解决了我的问题(单击滚动条时不会失去输入焦点):

var mouseDownWasInMyDiv = false;

$(myDiv).mousedown(function () {
  mouseDownWasInMyDiv = true;
  setTimeout(function() {
    mouseDownWasInMyDiv = false;
  }, 0);
});

$(myInput).blur(function () {
  if (mouseDownWasInMyDiv) {
    mouseDownWasInMyDiv = false; // should be set in Timeout but can also happen without click (e.g. TAB)
    refocus();
  }
});

【讨论】:

    猜你喜欢
    • 2018-03-26
    • 2018-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多