我有这个jQuery代码,我想要做的是使用.append()
方法将值添加为“items”,我从输入文本框中获取,然后将它们输入到div中单击“boton”作为id的div后,“lista”作为classname。这一切都运行正常,当我尝试删除我添加$('this').remove();
但没有做任何事情的项目时,问题就出现了。
有什么理由说明为什么不起作用?我很感激任何帮助。
$(document).ready(function(){
var contador = 1;
$('#boton').click(function(){
var item = $("input:text").val();
if (item !== ""){
$('.lista').append("<p style ='cursor:pointer;'>"+contador+"º) "+
$("input:text").val()+"</p>")
contador++;
}
});
$("p").click(function(){
$(this).remove();
});
});
答案 0 :(得分:6)
您需要在此处使用event delegation,因为您的段落已动态添加:
$('.lista').on('click', 'p', function() {
$(this).remove();
});
这将帮助您将click
事件绑定到这些新创建的段落。
答案 1 :(得分:1)
使用event delegation作为动态创建的元素
$('.lista').on('click', 'p', function() {
$(this).remove();
});
答案 2 :(得分:1)
由于您正在动态创建新的'p'元素,因此您应该使用Jquery .on将事件处理程序附加到元素。
$(".lista" ).on( "click", "p", function()
$(this).remove();
});