【问题标题】:ios addEventListener not workingios addEventListener 不工作
【发布时间】:2016-08-23 14:20:47
【问题描述】:

为什么这个按钮在 ios 上不起作用?它在桌面和安卓上运行良好。如果 clickHandler 被定义为常规函数,它适用于 ios。

http://codepen.io/CalebEverett/pen/RRmYgx

<html>
    <head>
        <style>
            button {
                width: 150px;
                height 50px;
             }
        </style>
    </head>
    <body>
        <div id="testdiv">it doesn't work</div>
        <button id="do">Button</button>
    </body>
    <script>
        const clickHandler = () => {
            document.getElementById("testdiv").innerHTML = "it works!"
        }
        document.getElementById("do").addEventListener("click", clickHandler, false);
    </script>
<html>

【问题讨论】:

  • 你是在编译这个,还是你发送给浏览器的实际代码?许多桌面和 Android 浏览器也不支持此功能。
  • 您可能在控制台中有一个很好的错误消息,它会告诉您它不理解一个词,顺便说一句。
  • 根据developer.mozilla.org/en/docs/Web/JavaScript/Reference/…,箭头功能尚未得到广泛支持。
  • 这个 ecmascript 6 代码。大多数浏览器不支持。您必须将 const 更改为 var 并删除箭头函数 (" () => {}")

标签: javascript ios ecmascript-6 addeventlistener arrow-functions


【解决方案1】:

您正在使用arrow function,这是一个 ES6 功能。

对 ES6 的一般支持和箭头功能的具体支持尚未普及,并且仅限于某些浏览器的最新版本。具体来说,Safari 不支持桌面 (Mac) 或移动 (iOS) 上的箭头功能,但许多其他浏览器也会有同样的问题(包括较旧的 Android 浏览器、IE 等)。

您必须将 ES6 代码转换为更广泛支持的代码,或者坚持使用更标准的 Javascript。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-28
  • 1970-01-01
相关资源
最近更新 更多