使用jQuery删除<li>元素后如何“更新代码”?</li>

时间:2009-12-29 21:56:30

标签: jquery

我有16个<li>个项目 单击按钮后,我运行以下代码,删除<li>项。

jQuery('.btnRemoveItem').live("click",function(){
    var obj = this;
    jQuery.post("wp-content/themes/storelocator/include/adm_gallery.php", { deleteImage: 'single', name: jQuery(this).attr('id') },
    function(data){
        if(data.status == 'deleted');
        {
            jQuery(obj).closest('li').fadeOut(400, function() { $(this).remove(); });
            var count = jQuery('#adminGallery ul li').length;
            jQuery('#imageCount').html(count);
        }
    }, "json");

});

此代码可以使用并删除列表项。但是,进行项目计数仍然会返回16项。 因此,我需要以某种方式绑定事件。我想也许$.live会有所帮助,但它没有效果。

我应该如何“绑定”<li>删除?

2 个答案:

答案 0 :(得分:7)

它不起作用,因为你没有删除元素,直到它完成淡出需要400毫秒,同时其余的代码继续,计数仍然看到即将被删除的<li>

只需将fadeout下面的两行移动到回调函数内部,它就会按照您的意图运行。

答案 1 :(得分:2)

也许一种更简单的方法可行:

jQuery('#imageCount').html(count - 1);

你所拥有的东西不起作用,因为该元素在完成淡出之前并未实际删除。