$(document).on()在使用$(this)时在ajax之后不起作用

时间:2018-10-02 18:37:20

标签: jquery

我目前有此代码

$(document).on("click", ".element", function(e){
    e.preventDefault();
    $.ajax({
        type:'POST',
        url: "ajax/ajax-submit.php",
        success:function(data){
            if(data == "success") {
                console.log("deleted upload");
                $(this).parents(".parent-element").remove();
            }
        },error: function(data){}
    });
});

这是HTML

<div class="parent-element">
     <div class="container">
          <button class="element">Remove Parent</button>
     </div>
</div>

$(this)在ajax成功后不起作用。

我想要删除此.element的父项.parent-element

  

注意*:此.element.parent-element内的附加元素。

1 个答案:

答案 0 :(得分:0)

由于this现在属于success方法,因此添加变量oThis,然后在success方法中使用删除

$(document).on("click", ".element", function(e){
    var oThis = this;
    e.preventDefault();
    $.ajax({
        type:'POST',
        url: "ajax/ajax-submit.php",
        success:function(data){
            if(data == "success") {
                console.log("deleted upload");
                $(oThis).parents(".parent-element").remove();
            }
        },error: function(data){}
    });
});