2014-09-01 47 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); 
    }); 
}