我有一个文本框。如果选中并按Tab键,将打开一个新行。这到目前为止工作正常。但是,相同的操作在动态创建的文本框中不起作用。即使它与调用原始文本框的类相同。我试图在互联网上找到解释,但我无法得到/理解正确的答案。有人可以帮助我吗?
$('.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>');
}
});
答案 0 :(得分: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>');
}
});
答案 1 :(得分: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>');
}
});