2010-04-30 93 views
1

我正在爲我創建的頁面實現「快速刪除」功能。它的工作方式是這樣的:JQuery ajax成功幫助

1:您單擊要刪除的記錄的錶行中的「刪除」按鈕。

2:頁面向ajax頁面發送請求並返回成功的消息「yes」或失敗消息「no」。

我的問題是,如果我得到一個成功的消息「是」,我想隱藏該記錄的行。我遇到了使用JQuery「查找」該行的問題。

這裏是我的jQuery代碼:

$(document).ready(function(){ 

$(".pane .btn-delete").click(function(){ 

    var element = $(this); 
    var del_id = element.attr("id"); 
    var dataString = 'action=del&cid=' + del_id; 

    if(confirm("Are you sure you want to delete this content block?")) 
     { 
     $("#msgbox").addClass('ajaxmsg').text('Checking permissions....').fadeIn(1000); 

     $.ajax({ 
      type: "get", 
      url: "ajax/admArticles_ajax.php", 
      data: dataString, 
      success: function(data){ 
       switch(data) 
       { 
        case "yes": 
         $("#msgbox").addClass('ajaxmsg').text('Deleting content block....').fadeIn(1000); 

         $(this).parents(".pane").animate({ backgroundColor: "#fbc7c7" }, "fast") 
         .animate({ opacity: "hide" }, "slow") 

        break 
        case "no": 
         $("#msgbox").removeClass().addClass('error').text('You do not have the correct permissions to delete this content....').fadeIn(1000); 
        break 
        default: 
        }; 
       } 
     }); 

    } 
    return false; 
}); 

});

這是我用來隱藏行的代碼行,但它不工作,因爲我不認爲$(this).parents(「。pane」)找到該元素。

$(this).parents(".pane").animate({ backgroundColor: "#fbc7c7" }, "fast") 
         .animate({ opacity: "hide" }, "slow") 

任何幫助將不勝感激。謝謝...

+0

這不是不透明,給我的問題。它是$(this).parents(「。pane」)。它找不到要刪除的核心行。如果我將上面的代碼放在「switch」語句之外,它會正確隱藏正確的行。我不知道是否需要將該行傳遞給「成功」函數 – Jason 2010-04-30 00:19:12

+0

如果將代碼放在switch語句之外(大概仍在「成功」回調中)會導致該代碼生效,那麼似乎該交換機是問題。您是否驗證過返回的「數據」的值? – user113716 2010-04-30 00:29:17

+0

嗨帕特里克,是的數據返回字符串「是」。只是在switch語句中使用$(this).parents(「。pane」)沒有找到正確的行。 如果我將代碼更改爲$(「。pane」),它將刪除表中顯示它正在工作的所有行。這是不正確的,但因爲我只想刪除一行。 – Jason 2010-04-30 00:33:46

回答

3

在Ajax回調,this不會引用處理事件的元素。但是,您已經在您的事件處理程序element中引用了它。只要做:

element.parents(".pane").animate({ backgroundColor: "#fbc7c7" }, "fast") 
        .animate({ opacity: "hide" }, "slow") 
0

我不知道,但我相當肯定,opacity是0到1

這樣一個數值,你應該改變你的線是.animate({ opacity: "0" }...