0

我有这个自执行功能,它将事件侦听器添加到一系列链接中。但是当页面加载时,事件监听器会自动触发,而不是 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";
        }
    }
})()
4

2 回答 2

1
menuLink[a].addEventListener('onmouseover', linkChanger, true);
menuLink[a].addEventListener('onmouseout', linkChanger, true);
于 2012-05-05T20:01:56.033 回答
1

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

于 2012-05-05T20:04:03.473 回答