如何阻止此事件侦听器自动触发

时间:2012-05-05 20:00:04

标签: javascript addeventlistener

我有这个自动执行的功能,它将事件监听器添加到一系列链接中。但是,当页面加载时,事件侦听器会自动触发,而不是onmouseover / out。我的语法错了吗?如何阻止他们自动充电?

;(function(){
    var menuLink = $('.navItem');
    var menuItem = $('.menuLinks');
    for (a = 0; a <= 5; ++a) {
        menuLink[a].addEventListener('onmouseover', linkChanger(), true);
        menuLink[a].addEventListener('onmouseout', linkChanger(), true);
    }   

    function linkChanger(event){
        if (menuItem[a].style.color == "white") {
            console.log("This is white")
            menuItem[a].style.color = "black";
        }
        else {
            console.log("This is black");
            menuItem[a].style.color = "white";
        }
    }
})()

2 个答案:

答案 0 :(得分:1)

menuLink[a].addEventListener('onmouseover', linkChanger, true);
menuLink[a].addEventListener('onmouseout', linkChanger, true);

答案 1 :(得分:1)

当你编写linkChanger()时,它正在执行该函数并将结果提供给监听器。用function() { linkChanger(); }包裹它或用linkChanger替换。第一个选项允许您传递参数并运行其他函数。