2013-10-30 60 views
0

我在onLoad上調用的函數內的HTMLElement上使用addEventListner方法。但是,即使在我嘗試html頁面中的click事件之前,該方法也會被執行。在點擊HTMLElement之前觸發addEventListner

 function setConfigurationMenu(){ 

      var navConfigure = document.querySelector(".navConfigure"); 
      var navBody = navConfigure.querySelector(".body"); 
      var navTop = navConfigure.querySelector(".top"); 

      navTop.addEventListener("click", alert("jow")); 

     } 

那麼這裏發生了什麼,有什麼想法?

THX,

回答

1

這發生,因爲您正在執行的alert函數並傳遞其返回值(這是undefined)爲參數的到addEventListener方法。你實際上需要傳遞一個函數給它。

navTop.addEventListener("click", functionToBeTriggered); 

由於alert需要一個參數,它是你的文字,你可能需要將其包裝成調用它的匿名函數。例如:

1

這是因爲你傳遞的不是函數handler功能result,嘗試匿名函數此:

navTop.addEventListener("click", function() { 
    alert("jow"); 
}); 

在你的情況,換句話說,你只需調用功能,但你需要爲此傳遞處理程序。