我使用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;
})
});
答案 0 :(得分:3)
我在这里创建了一个简化的解决方案:http://jsfiddle.net/wgjrnw7m/1/。 它应该让你知道如何做到这一点。
基本上你想要计算你拥有的物品数量:
if($('.bannerli').length <= 1) { /* Hide delete */ }
并且您希望每次删除项目时都进行此检查。如果还可以添加项目,还需要检查是否有多个项目,并且在这种情况下再次显示所有删除按钮。
答案 1 :(得分:2)
使用jQuery选择器计算页面上仍有多少横幅。而不仅仅显示删除功能
if ( $('.j_bannerdelete').length > 1 ) {
...