答案 0 :(得分:2)
你可以试试。
$(function(){
$('#cblist a').live('click', function(){
$(this).parent('li').remove();
return false;
});
});
答案 1 :(得分:0)
当浏览器正在读取您的javascript代码时,动态添加的li不在DOM中,因此无法找到它。而是将处理程序添加到父级,并监听如下:
$('#cblist').on('click', 'a', function(){
$(this).parent('li').remove();
return false;
});
答案 2 :(得分:0)
您只是将点击事件绑定到当前的“删除”链接,而不是将来的链接。为此使用事件委托,以涵盖两个基础。变化:
$('#cblist a').click(function(){
到
$('#cblist').on('click', 'a', function() {
答案 3 :(得分:0)
这里的秘密是事件委托。当您致电.click(function() {...})
或.on('click', function() {...})
时,事件处理程序仅分配给与代码运行时匹配选项的元素。它不会影响以后添加的元素。
但是,您可以使用事件委派将事件处理程序分配给包含所有动态元素的静态元素,只要与动态选择器匹配的元素触发该类型的事件,它就会运行回调函数:
$('#cblist').on('click', 'a', function() {
$(this).parent('li').remove();
return false;
});
有关详情,请参阅.on()
功能文档中标题为直接和委派活动的部分。
答案 4 :(得分:0)
$(function(){
$('#cblist').on('click','a',function(){
$(this).parent('li').remove();
return false;
});
});
查看此jsfiddle
答案 5 :(得分:0)
答案 6 :(得分:0)
您应该添加此代码以添加动态li
代码
$li = $('<li>'+name+'</li>');
$a = $('<a href="">remove</a>');
$a.click(function(){
$(this).parent('li').remove();
return false;
});
$li.append($a);
我还更新了jsfiddle上的代码