2013-07-23 102 views
-1
$('#fancybox-wrap').on('click', '.pureElement', function() { 
//Some Ajax call 
}); 

我將事件掛鉤到上面的元素。 在每次執行此事件掛鉤代碼時,都會向該元素添加一個事件。 它不覆蓋當前事件。關於綁定事件多次。但我需要事件只能工作一次

ie如果這段代碼執行4次,只需單擊pureElement,Ajax調用就會觸發4次。

我只需要事件只工作一次,即使我綁定事件可能時間。 我可以做什麼來指定事件應該只被解僱一次?

+0

那麼,爲什麼你綁定了很多次?在這裏不會讓人感覺有意思。爲什麼不直接使用最接近的靜態容器作爲委託目標呢? –

回答

0

嘗試使用.off()

$('#fancybox-wrap').off('click').on('click', '.pureElement', function() { 
//Some Ajax call 
}); 
+0

你可以命名空間,我認爲,以防萬一 –

+0

這似乎是一個答案 –

0

使用one()

$('#fancybox-wrap').one('click', '.pureElement', function() { 
//Some Ajax call 
}); 

但是我的疑問是it add an event to the element. It do not overwrite the current event.不應該發生...除非有事件冒泡...你可以發佈更多的代碼..或相關HTML

+0

如果我點擊第二次它應該觸發,同一事件。但一次點擊不應多於一次觸發 –

0

也許你需要這樣的:

$('#fancybox-wrap').on('click', '.pureElement', function (event) { 

event.stopImmediatePropagation(); 

//Some Ajax call 

});

+0

該事件已經傳播到#fancybox-wrap的級別 –