2011-02-19 109 views
1
jQuery('.delete-tag').live('click', function(e) { 
    e.preventDefault(); 

    var id = jQuery(this).attr('id'); 

    var data_string = "ajax=1&tag-id=" + id + ""; 

    jQuery.ajax({ 
     type: "POST", 
     url: file_path + "tags/edit/delete/", 
     data: data_string, 
     dataType: "json", 
     success: function(ajax_output) { 
      jQuery(this).hide(); 
     } 
    }); 
}); 

.delete-tag連桿經由AJAX裝載在模式窗口之後。我使用live()來綁定此鏈接的點擊事件。 Ajax運行正常,但我無法使hide()在加載ajax的鏈接上工作。jQuery的:隱藏的Ajax加載股利附加AJAX請求

對此提出建議?除了藏身之外,一切都有效。

回答

5

一旦進入ajax成功函數,this指向一個不同的對象。將原始參考存儲在另一個變量中:

var orig = jQuery(this); 
jQuery.ajax({ 
     type: "POST", 
     url: file_path + "tags/edit/delete/", 
     data: data_string, 
     dataType: "json", 
     success: function(ajax_output) { 
      orig.hide(); 
     } 
    }); 
+0

你知道,我其實是新的。它只是沒有跨過我的腦海,因爲我認爲這是另一個'live()'問題。謝謝! – ATLChris 2011-02-19 00:30:32