jQuery - 'this' selector doesn't work inside callback function [duplicate]

雨燕双飞 提交于 2020-02-07 12:27:24

问题


Possible Duplicate:
$(this) doesn't work in a function

I'm writing post removing code in jQuery, The removing itself is made via post-request to backeds, after server returns 200, I want to delete this post on client-side.

$('.delete-post').click(function() {
    $.post($(this).attr('href'), {}, function(data) {
        $(this).closest('.post').remove();
    });
    return false;
});

However, I've noticed that inside function(data) {...) selector 'this' doesn't work. I need to remove closest to $('.delete-post') div with class '.post'. How to manage this problem? Thanks!


回答1:


$(this) exists in the click event but function(data) { is not part of click event rather callback function. So save the $(this) in some variable for instance that for later use.

Try this:

$('.delete-post').click(function(e) {
    e.preventDefault();
    var that = $(this);
    $.post(that.attr('href'), { }, function(data) {
        // $(this).closest('.post').remove();
        that.closest('.post').remove();
    });
});


来源:https://stackoverflow.com/questions/40376016/how-to-access-property-with-jquery

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!