【问题标题】:Javascript "addEventListener" Event Fires on Page Load [duplicate]页面加载时触发Javascript“addEventListener”事件[重复]
【发布时间】:2011-01-23 08:36:22
【问题描述】:

当我运行以下脚本时,该事件总是在页面加载时触发。我不确定我在这里做错了什么,我创建了元素,在 DOM 中找到它然后附加一个侦听器,但它总是在页面加载时触发事件,而不是在单击元素时触发。

<script type="text/javascript" language="javascript">
    document.write("<div id=\"myDiv\">I am a div</div>");
    el = document.getElementById("myDiv");
    el.addEventListener("click", alert("clicktrack"), false);
</script>

【问题讨论】:

    标签: javascript javascript-events addeventlistener


    【解决方案1】:

    怎么样:

    <script type="text/javascript" language="javascript">
      document.write("<div id=\"myDiv\">I am a div</div>");
      el = document.getElementById("myDiv");
      el.addEventListener("click", function() { alert("clicktrack"); }, false);
    </script>
    

    【讨论】:

      【解决方案2】:
      el.addEventListener("click", alert("clicktrack"), false);
      

      当这一行被执行时,alert 将被调用并返回undefined。要传递警报代码,您需要将其包装在一个函数中。

      el.addEventListener("click", function() { alert("clicktrack"); }, false);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-18
        • 1970-01-01
        • 2021-08-13
        • 2014-07-30
        相关资源
        最近更新 更多