2014-09-01 68 views
2

我有一个图像列表。每个图像都有一个链接来删除它:后ajax请求我的函数调用它不能正常工作,只是在页面刷新后工作

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

而且我用jQuery Ajax删除这个图像。

但是,当我只有一个图像我想隐藏这个“删除”链接。

在我的js文件

所以,我有我的$(function(){});内的第一件事就是:

hidelink(1); //my function to hide if I have only 1 image 

它工作正常,当我接取我的网页。如果我只有一个像我的“删除”链接不要出现。

但是,当我有我的两个最后的图像,我点击删除一个,当我点击删除我想隐藏我的“删除”链接在该部分,它不工作,只是在刷新页面时工作。

你明白为什么会发生这种情况吗?

我的代码删除图像是这样的:

$(function(){ 
    var banid = null; 
    $("a#nao").click(function(event){ 
     event.preventDefault(); 
     $('.confirm').fadeOut("slow",function(){ 
      $('.delete_dialog').fadeOut("slow"); 
     }); 
     $('.bannerli li[id="'+ banid +'"]').css('background','#f5f5f5'); 
     banid = null; 
    }); 
    $("a#delete").click(function(event){ 
     event.preventDefault(); 
     if (!banid) return; 
     $.post(url,{action:'delete',id: banid},function(){ 
      window.setTimeout(function(){ 
       $('.bannerli li[id="'+ banid +'"]').fadeOut("slow"); 
      },500); 
      $('.confirm').fadeOut("fast",function(){ 
       $('.delete_dialog').fadeOut("fast"); 
      }); 
      hidelink(2); //here I call my function every time I delete 

     }); 

    }); 
    $('.bannerli').on('click','.j_bannerdelete',function(){ 
     banid = $(this).attr('id'); 
     $('.bannerli li[id="'+ banid +'"]').css('background','red'); 
     $('.delete_dialog p').text('You really want to remove this image?'); 
     $('.delete_dialog').fadeIn("slow",function(){ 
      $('.confirm').fadeIn("slow"); 
     }); 
     return false; 
    }) 
}); 

这是隐藏“删除”链接功能:

function hidelink($value) { 
    if($('.bannerli li').length <= $value) { 
     $('.j_bannerdelete').hide(); 
    } 
} 
+0

它看起来像你刚刚淡出出来不删除他们,这个好,如果你将错误处理上$post呼叫这样一个添加代码。尝试实际删除它们。 – Musa 2014-09-01 01:34:48

回答

0

在我看来,你必须使用.foreach("selectorname")找到一个匹配的元素,如果长度为0,然后使用.("selectorname").hide()为了隐藏删除链接或更好地添加隐藏链接的CSS类(所以如果图像再次出现,您将删除此CSS类再次显示链接)。 P.S.

self.remove = function (item) { 
    $.ajax({ type: "DELETE", url: '/api/sets/' + item.ID }) 
     .done(function() { 
      alert("Товар успешно удален!"); 
     }) 
    .fail(function (xhr, status, error) { 
     var err = eval("(" + xhr.responseText + ")"); 
     alert(err.Message); 
    }); 
} 
相关问题