2013-07-29 71 views
1

我有一個文本框。如果選中並點擊Tab鍵,則會打開一個新行。迄今爲止,這工作得很好。但是,相同的操作在該動態創建的文本框中不起作用。即使它與原始文本框被調用的類相同。我試圖找到互聯網上的解釋,但我無法得到/理解一個正確的答案。有人可以幫我嗎?爲什麼我的動態創建元素的類無法識別?

http://jsfiddle.net/RzCLM/1/

$('.list').keydown(function(key){ 
    if(key.which === 9) { 
     $('.ingredients_list').append('<li><input class="list" type="text"/><i><img class="remove" src="images/remove.svg"></i></li>'); 

    } 
}); 

回答

1

$(document).on使用到目標動態創建的元素:

$(document).on('keydown', '.list', function(key){ 
    if(key.which === 9) { 
     $('.ingredients_list').append('<li><input class="list" type="text"/><i><img class="remove" src="images/remove.svg"></i></li>'); 

    } 
}); 

jsfiddle

0

那是因爲你需要使用事件代表團作爲新.list元素在執行您的.keydown()的時間是不存在的,你的代碼更改爲:

$(document).on('keydown','.list',function(key){ 
     if(key.which === 9) { 
      $('.ingredients_list').append('<li><input class="list" type="text"/><i><img class="remove" src="images/remove.svg"></i></li>'); 

     } 
    }); 

JSFiddle Demo

相關問題