0

1.3.2 ではなく jQuery 1.4.2 を使用する場合に、これが問題になる理由を理解しようとしています。

これは私の機能です:

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

他のすべてのライブ イベントは機能しますが、ajaxForm はプラグインであるため、.live() メソッドを使用できません。これは、古いフォームを使用した他のタイプのバインディング (クリック) についても気付きました (コールバック後の再バインディング)。

それがこれを解決する方法であるかどうか教えてもらえますか?

これは同様の質問ですが、ここでの私の初心者の評判のために、そこでコメントしたり質問したりすることができないため、ここで新しい質問をします. -> jQuery: .load() 経由で読み込まれたページのフォームに ajaxForm をバインドします

ありがとうございました!

編集:「#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 に答える