这是我第一次遇到addEventListener()方法的问题。 当我尝试将它与setTimeout一起使用时,即使addEventListener具有“click”属性,也会自动调用该函数。
<button id="test">Test</button>
document.getElementById("test").addEventListener("click", setTimeout(myFunc, 2000));
function myFunc() {
console.log("Hello");
}
答案 0 :(得分:2)
这就是你想要的。
document.getElementById("test").addEventListener("click", function(){setTimeout(myFunc, 2000)});
function myFunc() {
console.log("Hello");
}
&#13;
<button id="test">Test</button>
&#13;
答案 1 :(得分:2)
您可以在所调用的函数中使用setTimeout
。
Jsfiddle
document.getElementById("test").addEventListener("click", myFunc);
function myFunc() {
setTimeout(function(){
console.log("Hello");
}, 6000);
}
答案 2 :(得分:0)
您可以保留与现在完全相同的代码,但curry
通过bind
调用您的函数,而不是尝试调用它,同时尝试将其作为参数传递。
document.getElementById("test").addEventListener("click", setTimeout.bind(null, myFunc, 2000));
function myFunc() {
console.log("Hello");
}
<button id="test">Click</button>