我有一张图片列表。每个图像都有一个删除它的链接:
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
它工作正常,当我访问我的页面如果我只有一个图像,我的“删除”链接不会出现。
但是当我有我的最后两张图片并且我点击删除一张图片时,当我点击删除时,我想隐藏我的“删除”链接,并且它不起作用,只是在我刷新页面时才有效。 / p>
你知道为什么会这样吗?
我删除图片的代码是:
$(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 :(得分:0)
我认为如果长度为.foreach("selectorname")
,则必须使用0
来查找匹配元素,然后使用.("selectorname").hide()
隐藏删除链接或更好地添加隐藏链接的css类(所以如果再次出现图像,您只需删除此css类以再次显示链接)。
附:如果您要在$post
调用中添加用于处理错误的代码,那么这很好:
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);
});
}