在jQuery中使用remove()后添加相同的元素

时间:2013-11-15 12:18:07

标签: javascript jquery

我正在使用此代码在一个潜水区域添加点数。 现在我想删除旧的tapped点来更新它,我正在使用jQuery remove()函数。 它工作正常,但之后它没有向我显示该div上的下一个点。

jQuery(document).ready(function () {
    $("#test").click(function (e) {
        $(".myimg").first().clone().offset({
            left: e.pageX,
            top: e.pageY
        }).appendTo('body');
    });
    $('.remove').click(function(){
        $('.myimg').remove();
    });
})

http://jsfiddle.net/szCAL/9/

4 个答案:

答案 0 :(得分:2)

您只能删除克隆,如下所示:

jQuery(document).ready(function () {
    var el = $('.myimg').first();
    $("#test").click(function (e) {
        el.clone().offset({
            left: e.pageX,
            top: e.pageY
        }).appendTo('body').addClass("clone");
    });
    $('.remove').click(function(){
        $('.clone').remove();
    });
})

http://jsfiddle.net/szCAL/13/

答案 1 :(得分:2)

您正在删除主要克隆元素,使用类.myimg,您需要将其保存为备份,因为当您点击该div时,您需要使用该img进行克隆,

这是code

我为该克隆元素添加了另一个类名,并删除了那个带有该类名的点。

答案 2 :(得分:1)

如果你创建一个新元素而不是克隆,那么问题就是自己解决了,你可以摆脱第一个烦人的元素:

jQuery(document).ready(function () {
    $("#test").click(function (e) {
        $('<img />', {
            style   : 'left: '+e.pageX+'px;top:'+ e.pageY + 'px;height: 10px;width:10px',
            src     : 'http://www.nystce.nesinc.com/images/tests_circle.gif',
            'class' : 'myimg'
        }).appendTo('body');
    });
    $('.remove').click(function(){
        $('.myimg').remove();
    });
});

FIDDLE

答案 3 :(得分:0)

您需要再次添加元素才能开始显示位置

$('.remove').click(function(){
        $('.myimg').remove();
        $('#test').append("<img class='myimg' width='10' src='http://www.nystce.nesinc.com/images/tests_circle.gif' height='10' />");
    });

结帐fiddle