jQuery:在额外的Ajax请求之后隐藏Ajax加载的Div

时间:2011-02-19 00:16:34

标签: jquery ajax

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()来绑定此链接的click事件。 Ajax运行正常,但我无法让hide()处理加载ajax的链接。

连连呢?除了隐藏之外,一切都有效。

1 个答案:

答案 0 :(得分: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();
        }
    });