2014-03-05 51 views
5
綁定事件

我用像如何發現,如果已經使用jQuery

$("body").on("click", ".className", function(){ 
    // some code 
}); 

它工作正常語法,然後我重新加載整個頁面與AJAX(沒有瀏覽器刷新),則事件開始射擊再次刷新三次,等等。

然後我轉換的代碼

$("body").off("click", ".className").on("click", ".className", function(){ 
    // some code 
}); 

它的固定的問題在一定程度上。即使在這之後,我在某些情況下會發生多次射擊。有沒有辦法找出在元素上綁定多次的「on」事件,將它們全部移除並綁定一次?

不確定這是否是一個有效的問題,或者我能夠清楚地解釋它。

+0

您每次使用ajax加載頁面時都會調用該函數嗎? – Anton

+0

在第一次綁定後將'init'變量設置爲true,並在再次綁定前檢查該變量。 – levi

+0

你最好不要將你的綁定代碼包裝在任何處理程序/回調函數中 –

回答

2

如果你委託你用AJAX加載頁面每次它會一次又一次地結合於人體的兒童.classname從而造成不必要的影響

$(function() { 
    $("body").on("click", ".className", function() { 
     // some code 
    }); 

    function loadpage() { 
     //ajax call 
    } 
    loadpage(); 
}); 

嘗試把你的事件委派loadpage功能外

+0

其實我正在點擊回調函數內部進行調用並渲染頁面。 –

+1

@Souviiik所以你爲什麼要綁定它在點擊處理程序? –

+0

你有什麼建議?代碼就像 $(「body」).off(「click」,「.className」)。on(「click」,「.className」,function(){.ajax()。done(function數據){//使用數據呈現頁面}); }); –

相關問題