2012-09-20 40 views
0

我讀過的肝功能已被廢棄,應該對方法使用來代替。在功能不起作用,其中肝功能沒有

所以我編輯從

$('form').live('submit', function (event) {}) 

我的代碼

$('form').on('submit', function (event) {}) 

和:-)我不知道爲什麼它不工作了?

BTW形式元素被動態地添加。

+0

找到參見等效例的文檔中(這是* * [記錄](http://api.jquery.com/on/)與[變換討論](HTTP: //api.jquery.com/live/))。使用Delegated Events的''on'不是**。 – 2012-09-20 20:51:18

回答

2

您需要將事件處理程序附加到存在於網頁上的DOM元素加載:

$('body').on('submit', 'form', function(event) { 
... 
}); 

您應該用body,用於更靠近所述form的元素,這種方式的情況下僅需要冒泡一個水平,從而提高性能,例如: -

<div id="container"> 
    <form> 
    ... 
    </form> 
</div> 

然後可以使用:

$('#container').on('submit', 'form', function(event) { 
    ... 
}); 

所有這些信息都可以在documentation

+0

+1解釋爲什麼這個工作 – CaffGeek

+0

我還用$(this)來獲取表單對象。我怎樣才能到這裏? – user49126

+0

@ user49126您可以擴展該評論​​嗎?它並沒有多大意義...... –

2

使用jQuery的文檔上的這個代替

$('body').on('submit', 'form', function (event) {}) 

檢查部分直接和委託的事件on方法

+0

我也使用$(this)來獲取表單對象。我怎樣才能到這裏? – user49126