【问题标题】:why my onclick event triggers automatically为什么我的 onclick 事件会自动触发
【发布时间】:2017-10-12 21:23:38
【问题描述】:

'Hello World' 最初在页面加载时显示。我希望它仅在单击按钮后显示。我知道我可以通过向按钮添加内联事件侦听器来做到这一点。我可以在脚本中编写所有这些代码吗?

        <button id="demo1">Click Me</button>

        <p id="demo"></p> 

        <script> document.getElementById('demo1').onclick = myFunction(); 
            function myFunction() {
            document.getElementById("demo").innerHTML = "Hello World"; } 
        </script>

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    您会立即调用 myFunction,然后将返回值(未定义)分配给 onclick

    document.getElementById('demo1').onclick = myFunction();

    应该是

    document.getElementById('demo1').onclick = myFunction;

    【讨论】:

    • 如果您曾经使用过这种类型的事件侦听并且您需要将多个参数传递给您的函数,那么您应该知道Element.onclick = function(evenObjectIsPassedHere){ myFunction.call(this, arg1, arg2, arg3); } 是如何做到这一点的。当然,您也可以将事件对象传递给您的内部函数。我正在展示使用call,因此您可以将this 上下文绑定到您的元素,然后myFunction 可以包含this.style.color = 'green'; 之类的内容。您也可以在输出元素的上下文中call()
    猜你喜欢
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    相关资源
    最近更新 更多