$( 'P')除去();不起作用,为什么?

时间:2014-02-17 04:55:37

标签: jquery

我有这个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();
    });        
});

3 个答案:

答案 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();
    });