2012-05-05 170 views
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"; 
     } 
    } 
})() 

回答

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

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

相关问题