2012-07-18 56 views
1

我在我的應用程序中有2列 第一列在加載網站期間加載。當使用jQuery實時功能時,按鈕將被觸發兩次

在第二列上則將裝載如果一個選擇框已經"changed" 這裏的事情是,這是我的代碼看起來是這樣的:

jQuery(".pagination").live("click",function(event){ 
    var pId = jQuery(this).attr("id"); 
    if(pId == "centerPagination") 
     CenterColumnPagination(); 
    else if(pId == "searchPagination") 
     SearchColumnPagination(); 
}); 

的CenterPagination功能的頁面加載過程中他們被稱爲我的網站。爲什麼它的「點擊」,因爲他們對這些2列我有一個類.pagination有一個按鈕,當選擇框是由"changed"

原因引發
的SearchColumnPagination他們被調用。

我的問題在於,因爲live代碼,當我點擊第一列時,按鈕似乎被觸發兩次,我注意到一個因爲當我檢查螢火蟲控制檯時,ajax調用已被調用兩次,並因此,我得到重複的結果。

而且在第二列,當我選擇框(分頁類會出來),然後點擊分頁類的按鈕,它也被觸發兩次。與第一列結果相同。

我在這裏想要的不是讓這些按鈕被觸發兩次,就像正常的點擊一樣。就像當我點擊它時,它應該只調用一次我的ajax。

請在此指導我。您的幫助將不勝感激,並獲得獎勵!

謝謝! :-)

回答

1

我寧願避免使用live。取而代之的是我使用delegate

$('#column-1').delegate('.pagination', 'click', function() { 
    CenterColumnPagination();  
}); 

$('#column-2').delegate('.pagination', 'click', function() { 
    SearchColumnPagination();  
}); 

,或者,如果你不想識別您的欄,你可以做到這一點,像這樣:

jQuery('body').delegate(".pagination", "click", function(event) { 
    var pId = jQuery(this).attr("id"); 
    if(pId == "centerPagination") 
     CenterColumnPagination(); 
    else if(pId == "searchPagination") 
     SearchColumnPagination(); 
}); 
+0

謝謝您的回答! :)我已經解決了 – PinoyStackOverflower 2012-07-18 07:05:19