0

我有以下代码可以正常工作,但由于使用了 setTimeout() 而写得不好。

我需要 2 个 .ajaxFormUnbind() 函数在其他代码运行之前完成。.remove() 在 .ajaxFormUnbind() 完成之前发生,没有延迟或回调。

    $('#joinPhotoUploadFormProfile').ajaxFormUnbind();
    $('#joinPhotoUploadFormGallery').ajaxFormUnbind();


    setTimeout(function(){
        $('#profileEditPrimaryPhotoManagementGifIMG').hide();
        hidePopUp('profile_photo_management');
        $('#profile_photo_management').remove();
    }, 10000);

我试过了,但它没有触发:

$('#joinPhotoUploadFormProfile').ajaxFormUnbind(function() {
            $('#profileEditPrimaryPhotoManagementGifIMG').hide();
            hidePopUp('profile_photo_management');
            $('#profile_photo_management').remove();
});

有没有办法让回调为 .ajaxFormUnbind() 工作?当我尝试上述方法时,它没有进入函数 - 放入 alert() 以查看代码进度并且没有进入。

有任何想法吗?谢谢你


函数来自这里:jquery.form.js - 我怎样才能取消绑定这个表单

4

1 回答 1

1

您的插件(老实说有点旧)在您要使用的函数中没有使用回调:

// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm
$.fn.ajaxFormUnbind = function() {
    return this.unbind('submit.form-plugin click.form-plugin');
};

无论如何,您可以像这样简单地修改它:

// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm
$.fn.ajaxFormUnbind = function(callback) {
    callback = callback || function(){};
    return this.unbind('submit.form-plugin click.form-plugin', callback);
};

并像您在第二个代码中尝试的那样使用它。

于 2013-11-07T10:02:05.233 回答