2011-10-31 42 views
0

我有一個名爲frm_contact的表格,我需要綁定該表單的提交事件。 「問題」(或更好的疑問)是,如果我不使用e.stopImmediatePropagation();提交事件被調用很多次。我使用stopImmediatePropagation()函數修復了它。爲什麼在表單中使用stopImmediatePropagation()?

我綁定事件以這種方式:

$('#frm_contact').live("submit", function(e){ 
}); 

我使用live(),爲什麼我需要使用stopImmediatePropagation()?

+0

你如何觸發'submit'事件? –

+1

難道是你多次綁定事件處理程序?這將是處理程序被多次調用的唯一解釋。 –

+0

Felix,我使用.html()加載表單,但我使用.live(),那麼爲什麼這個問題呢? – Dail

回答

1

我不知道,如果你說你的腳本不能正常工作,或問什麼event.stopImmediatePropagation()手段......

無論哪種方式,這裏是什麼意思一個摘錄:

除了在執行 的元素上保留任何附加處理程序外,此方法還會通過隱含地調用event.stopPropagation()來隱式地停止冒泡。爲了簡單地阻止冒泡到祖先元素的事件 ,但允許在相同元素上執行其他事件處理程序 ,我們可以使用event.stopPropagation() 代替。

使用event.isImmediatePropagationStopped()知道這個 方法是否曾被調用過(在該事件對象上)。

更多信息只是谷歌第一:)

但在這裏它是: http://api.jquery.com/event.stopImmediatePropagation/

+0

由於.live()方法處理事件,一旦它們傳播到該文件,不可能停止直播活動的傳播。 –

相關問題