【问题标题】:IE10 is not Handling Click Events | Help Using MSPointerIE10 不处理点击事件 |帮助使用 MSPointer
【发布时间】:2012-12-19 19:20:21
【问题描述】:

请提前原谅我是一个愚蠢的菜鸟。

无论如何,我正在尝试让我的 html5 游戏在 IE10 上运行, 但它没有检测到我的点击。

所以我对此进行了一些研究,然后发现而不是理解这意味着什么:

document.getElementById("answer1").addEventListener("click", wrong, false);

如果必须使用一些糟糕的专有代码。 因为我是一个愚蠢的菜鸟,我有问题 实现这一点。

这是我目前拥有的

    document.getElementById("answer1").addEventListener("click", wrong, false);
    document.getElementById("answer2").addEventListener("click", wrong, false);
    document.getElementById("answer3").addEventListener("click", wrong, false);
    document.getElementById("answer4").addEventListener("click", wrong, false);
    //Stupid IE10 Crap
    if (window.navigator.msPointerEnabled) {
        document.getElementById("answer1").addEventListener("MSPointerDown", wrong, false);
        document.getElementById("answer2").addEventListener("MSPointerDown", wrong, false);
        document.getElementById("answer3").addEventListener("MSPointerDown", wrong, false);
        document.getElementById("answer4").addEventListener("MSPointerDown", wrong, false);
    }

当我在 ie10 上运行代码时,它仍然没有注册我的鼠标点击。 我是否遗漏了什么或做错了什么?

请帮助我。

【问题讨论】:

  • 你有演示链接吗? IE 确实支持点击事件,所以你不应该需要 MSPointerDown。

标签: javascript click internet-explorer-10 handlers


【解决方案1】:

嗯,我不知道为什么它不起作用。 还是不行。

但我找到了一个我认为我会分享的解决方法。 我在目标 DIV 的 CSS 中添加了以下属性。

background-color:#FFFFFF; opacity:0;

出于某种原因,如果我给 DIVS 一个背景颜色并让它们完全透明, 点击注册。

所以,我现在已经不再关心这个问题了。

我希望这对某人有所帮助。

【讨论】:

  • 哇!这是我听过的最荒谬的建议。然而,它奏效了,而且它只是为我节省了(甚至更多)小时试图弄清楚为什么我的 JQuery UI 元素在 IE9 和 10 中不可拖动的原因。太棒了。非常感谢分享!!!
  • @Donzo- 我也遇到了这个问题。但请注意,设置 opacity:0 将使 div 中的所有内容都透明! Prob 不是你想要的。而是将透明度设置为 背景颜色中,如下所示:background-color: rgba(255,255,255,0);。请参阅here 了解更多信息。
【解决方案2】:

在每个元素上,添加 css 样式 -ms-touch-action: none;

IE10 似乎期望在您希望 Pointer 事件与之交互的元素上,这样它就不会尝试保持默认浏览器行为。

【讨论】:

    猜你喜欢
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    相关资源
    最近更新 更多