当 POST 请求成功时,我试图调用一个方法 uploadedImagesRefresh()。该代码有时可以工作,但有时无法调用 uploadedImagesRefresh(),但我必须说后端没问题,并且 Post 请求成功完成。

function refreshUploadedImages() {//this
    //function works quite well in other calls
}

$(function(){
    //
    $('.delete-img-btn').live('click', function() {

        //asign the image id from the button attribute 'img-id'
        var id= $(this).attr('img-id');
        //The data to be send via ajax the server will recieve 2 POST variables ie. 'action' and 'id'(which is the img id)
        var data={
            'pk':id,
            //call refreshUploadImages() upon succesful post
            'success':refreshUploadedImages
        };
        //The ajax request.

        $.post("/admin/image-uploader/delete/"+id , data);

    });
});

我在上面的代码中做错了什么?

最佳答案

添加回调。那将是 $.post() 的第三个参数。当 AJAX POST 请求成功时,将调用该回调函数。在该函数中,您可以调用您的函数。

$.post("/admin/image-uploader/delete/"+id , data,function(data){
  refreshUploadedImages()
});

你甚至可以直截了当,让你的函数成为回调:
$.post("/admin/image-uploader/delete/"+id , data, refreshUploadedImages);

关于javascript - 成功发布jquery ajax后调用方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15215282/

10-10 20:25