2013-01-08 34 views
1

我有一個動態創建的表單,其中有輸入字段的元素#addform。我附上事件,像這樣的字段:jquery .on()動態元素無法正常工作的事件地圖

$('input[type=text]').on({focus:function(){console.log('d');}},'#addform') 

爲什麼這不會觸發?我讀了.delegate(),但我認爲它應該與.on()

回答

4

你有反過來的理由。它應該是:

$("#addform").on({...}, 'input[type=text]'); 

原因是實際綁定完成到#addform。當.on被調用時,input[type=text]可能不存在。

+0

謝謝。說得通。只要SO讓我,我會接受你的答案。 – tim

2

我覺得這是比較合適的:

$('#addform').on({focus:function(){console.log('d');}},'input[type=text]'); 
0
$('#addform').on('focus','input[type=text]', function(){ 
    console.log('d'); 
}); 

做同樣的事情,但更具有可讀性,我認爲。