2012-09-14 34 views
1

好吧我是新來的jquery,並已取得相當大的進展,但這一個讓我難住。我有一個事件處理程序,我綁定到一個動態加載的div來處理點擊懸停等,但是當我嘗試綁定自定義函數時,它會在加載時觸發它而不是點擊時。.on事件發生在負載而不是點擊

function AddUser(){ 
     alert('Hi'); 
     if ($section !== 'addUser'){ 
      $section = 'addUser';   
     $('.userPanel').empty(); 
     $('.userPanel').load('pages/addUser.html'); 
     } 
     else{return;} 
    } 

    $(document).on("click", "a.addUser", AddUser()); 

但是如果我定義。對結合它的內部事件工作正常

 $(document).on("click", "a.addUser",function(){ 
     alert('Hi'); 
    }); 

我可能錯過了一些基本但這讓我整個上午所以任何幫助,將不勝感激frusterated。

注意:我意識到綁定到文檔是通用的,我應該綁定到我的靜態父divs之一,這只是我在測試時做出的更改。

在此先感謝。

+0

其中,增加你的代碼?你希望在你點擊頁面時起作用嗎? –

回答

8

變化:

$(document).on("click", "a.addUser", AddUser()); 

$(document).on("click", "a.addUser", AddUser); 

通過添加圓括號ADDUSER你有效地在你的代碼點調用它。

+1

+1我永遠不知道這也是一種方式 – diEcho

+1

感謝一百萬我認爲這將是一些元素,幫助了一堆,現在我可以前進。 – SelfTaughtCodeMonkey

2

剛剛從AddUser()

$(document).on("click", "a.addUser", AddUser); 
1

變化

$(document).on("click", "a.addUser", AddUser()); 

刪除括號

$(document).on("click", "a.addUser", AddUser); 

因爲AddUser()是自調用和頁面加載後執行。

OR

$(document).on("click", "a.addUser", function(){ 
    AddUser(); 
}); 

因爲,function() { AddUser(); }是不是自我調用塊和事件發生時內將執行一切。

3
$(document).on("click", "a.addUser", AddUser); 

$(document).on("click", "a.addUser", function(){ 
    AddUser(); 
}); 
+0

這就是我想的+1 – user1477388

+0

多餘的匿名功能。如果你繼續添加這樣的匿名功能,IE的老版本會開始懲罰你。 – Baz1nga

+0

匿名功能的意思是? – diEcho

0

使用功能的簽名,否則你將被調用函數.. 將其更改爲

$(document).on("click", "a.addUser", AddUser); 

Demo

相關問題