Javascript点击功能问题

时间:2014-03-18 15:44:45

标签: javascript

我的js有问题。一旦页面加载,它就会触发logTest而不是每次我点击。

function logTest() {
 console.log('test');
}

var id = document.querySelector('#id');
id.addEventListener("click", logTest(), false);

2 个答案:

答案 0 :(得分:7)

您希望将事件绑定到函数本身,而不是它的返回值。当您添加事件监听器时,在()之后移除logTest

id.addEventListener("click", logTest, false);

您可以使用getElementById代替querySelector,并注意,对于IE< 9,您需要使用attachEvent代替。可以在this MDN article中找到解决方法。

我建议这样的事情:

var id = document.getElementById('id');
if (id.addEventListener) {
    id.addEventListener("click", logTest, false); 
} else if (id.attachEvent)  {
    id.attachEvent("click", logTest);
}

如果您正在使用jQuery,可将其简化为:

$('#id').click(logTest);

答案 1 :(得分:2)

将logTest绑定到click事件后,除了括号外,一切都很好。括号立即调用函数,而不是将其绑定到事件。

id.addEventListener("click", logTest, false);