0

我试图弄清楚为什么在使用 jQuery 1.4.2 而不是 1.3.2 时这是一个问题。

这是我的功能:

function prepare_logo_upload() {
    $("#logo-upload-form").ajaxForm({
        //alert(responseText);                                       
        success: function(responseText) {
            //alert(responseText);                                          
            $('#profile .wrapper').html(responseText);
            prepare_logo_upload();
        }
    });
}

其他所有实时事件都有效,但不能使用 .live() 方法,因为 ajaxForm 是一个插件。对于使用旧表单的其他类型的绑定(点击),我也注意到了这一点(回调后重新绑定)

你能告诉我这是否是解决这个问题的方法吗?

这是一个类似的问题,但由于我在这里的新手声誉,无法在那里发表评论或提问,所以我会在这里问一个新问题。-> jQuery:将 ajaxForm 绑定到通过 .load() 加载的页面上的表单

谢谢!

编辑:“#profile .wrapper”包含表单,所以我的问题是在重新加载后将它与事件重新绑定。

4

1 回答 1

0

只是一个猜测,但是,像这样的东西?


$("#logo-upload-form").live("submit", function () {
    return (function () {
        jQuery(this).ajaxForm({
            //alert(responseText);                                       
            success: function(responseText) {
                //alert(responseText);                                          
                $('#profile .wrapper').html(responseText);
                // recursion 
                return arguments.callee();
            }
        });
    }());
});

完全未经测试,顺便说一句。

于 2010-05-11T22:56:23.737 回答