javascript click event handler fires without clicking

前端 未结 3 1490
礼貌的吻别
礼貌的吻别 2020-12-04 02:12

Why does this function get fired without having clicked on the specified button? I had a look at a few similar problems but none deal with this code structure (might be obvi

相关标签:
3条回答
  • 2020-12-04 02:49

    This code executes your function hideId("main") you should pass just the callback's name:

    document.getElementById("main_btn").addEventListener("click", hideId);
    
    function hideId(event) {
        var id = event.target.srcElement.id; // get the id of the clicked element
        document.getElementById(data).style.display = "none";
        console.log("hidden element #"+data);
    }
    
    0 讨论(0)
  • 2020-12-04 02:52

    You are directly calling it.

    document.getElementById("main_btn").addEventListener("click", hideId("main");
    

    You should do that in a callback.

    document.getElementById("main_btn").addEventListener("click", function (){
        hideId("main");
    });
    
    0 讨论(0)
  • 2020-12-04 03:03
    document.getElementById("main_btn").addEventListener("click", hideId.bind(null, "main");
    
    0 讨论(0)
提交回复
热议问题