javascript click事件处理程序在不点击的情况下触发

时间:2017-03-27 09:39:41

标签: javascript function event-handling click

为什么在没有点击指定按钮的情况下触发此功能? 我看了几个类似的问题,但没有处理这个代码结构(可能是这个缺失的明显原因......)。

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

function hideId(data) {
    document.getElementById(data).style.display = "none";
    console.log("hidden element #"+data);
}

提前致谢!

3 个答案:

答案 0 :(得分:1)

此代码执行您的函数hideId("main"),您应该只传递回调的名称:

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);
}

答案 1 :(得分:1)

你是直接打电话的。

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

你应该在回调中做到这一点。

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

答案 2 :(得分:0)

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