2012-05-05 3 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. Первый вариант позволяет передавать аргументы и запускать другие функции.

Смежные вопросы