2011-02-19 7 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는 정상적으로 작동하지만 Ajax로드 링크에서 작동하도록 hide()을 가져올 수 없습니다.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

아시다시피, 저는 사실 새롭습니다. 나는 그것이 또 다른 '생생한'문제라고 생각했기 때문에 단지 내 마음을 가로 지르지 않았다. 감사! – ATLChris

관련 문제