仅当我的图片列表中有多个图片时,才显示我的链接“删除”

时间:2014-08-29 20:05:41

标签: javascript jquery ajax

我使用jQuery和Ajax删除横幅图片。

但如果我只有一张图片,我不想删除它。

我有一个图像列表,每个图像都有这个链接:

echo '<a class="delete j_bannerdelete" id="'.$rslt_banner['id'].'" href="#">Delete</a> ';

我正在思考一些关于tihs的事情,如果我的行数超过1,只显示“删除”链接。

if($read_ban->rowCOunt() >1{
     echo '<a class="delete j_bannerdelete" id="'.$rslt_banner['id'].'" href="#">Delete</a> ';
}

但是像这样,例如,如果我有2个图像,我删除一个,并且因为我用ajax删除,我的页面不刷新,所以我的最后一个图像与我的“删除”链接,所以我可以删除它。

你知道一种解决这个问题的简单方法吗?

我的删除代码:

$(function(){
    var banner_id = null;
    $("a#no").click(function(event){
        event.preventDefault();
        $('.confirm').fadeOut("slow",function(){
            $('.delete_dialog').fadeOut("slow"); 
        });
        $('.bannerli li[id="'+ banner_id +'"]').css('background','#f5f5f5');
        banner_id = null;
    });
    $("a#delete").click(function(event){
        event.preventDefault();
        if (!banner_id) return;
        $.post(url,{action:'ban',id: banner_id},function(){
            window.setTimeout(function(){
                $('.bannerli li[id="'+ banner_id +'"]').fadeOut("slow");
            },500);
            $('.confirm').fadeOut("fast",function(){
                $('.delete_dialog').fadeOut("fast"); 
            });
        });
    });
    $('.bannerli').on('click','.j_bannerdelete',function(){
        banner_id = $(this).attr('id');
        $('.bannerli li[id="'+ banner_id +'"]').css('background','red');
        $('.delete_dialog p').text('Are you sure you want to remove this banner?');
        $('.delete_dialog').fadeIn("slow",function(){
            $('.confirm').fadeIn("slow");
        });
        return false;
    })
});

2 个答案:

答案 0 :(得分:3)

我在这里创建了一个简化的解决方案:http://jsfiddle.net/wgjrnw7m/1/。 它应该让你知道如何做到这一点。

基本上你想要计算你拥有的物品数量:

if($('.bannerli').length <= 1) { /* Hide delete */ }

并且您希望每次删除项目时都进行此检查。如果还可以添加项目,还需要检查是否有多个项目,并且在这种情况下再次显示所有删除按钮。

答案 1 :(得分:2)

使用jQuery选择器计算页面上仍有多少横幅。而不仅仅显示删除功能

if ( $('.j_bannerdelete').length > 1 ) {
...