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

How do I stop this event listener from automatically firing

本文关键字:侦听器 何阻止 事件      更新时间:2023-09-26

我有这个自执行函数,它将事件侦听器添加到一系列链接中。但是,事件侦听器在页面加载时自动触发,而不是在鼠标悬停/移出时触发。我语法有误吗?如何阻止它们自动射击?

;(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";
        }
    }
})()
menuLink[a].addEventListener('onmouseover', linkChanger, true);
menuLink[a].addEventListener('onmouseout', linkChanger, true);

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