只有当我的图像列表中有多个图像时才显示我的链接“删除”
问题描述:
我使用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个图像,我删除一个,并作为即时通讯与阿贾克斯删除,我的网页不刷新,所以我有我的最后一个影像与我的“删除”链接,所以我可以删除它。
你知道一个简单的方法来解决这个问题吗?
我删除代码:
$(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;
})
});
答
我创建了一个简化的解决方案在这里删除功能:http://jsfiddle.net/wgjrnw7m/1/。 它应该给你一个如何去做的想法。
基本上要算你有多少条目:
if($('.bannerli').length <= 1) { /* Hide delete */ }
而要做到这一点,每次检查的项目被删除。如果还可以添加项目,则还需要检查是否有多个项目,并且在这种情况下再次显示所有删除按钮。
感谢您的解决方案。但我更简单地使用它,它似乎是正常工作。我在我的文档reay这个调用disableDeleteIfOnlyOneItem(1);当我删除我的图像后,我有这个调用disableDeleteIfOnlyOneItem(2);我只是使用你的函数:function disableDeleteIfOnlyOneItem($ value)if($('。bannerli li')。length'= $ value){('。j_bannerdelete')。hide(); } }看起来一切正常!谢谢! – OzzC 2014-08-29 20:56:55