0

現在、Ajaxポストリクエストからデータを取得するときに $(this).insertFUnctionNameHere() を使用しようとしています。$(this).parent().hide(); などのいくつかのテストを実行しようとしました。$(this).slideUp(); どこを選択していたかを確認しましたが、何も選択していないようですか? これは正常ですか、それとも $(this) が実際に何かを選択する方法はありますか。

これが私のコードです。

/*
         * This is the ajax
         */
        $(".reply").on( "submit" , function(){
        // Intercept the form submission
        var formdata = $(this).serialize(); // Serialize all form data
        // Post data to your PHP processing script
        $.post( "/comment.php", formdata, function( data ) {
            // Act upon the data returned, setting it to .success <div>
            $(this).children().slideUp();
            $(this).children('.success').prepend(data);
            $('.hidden').hide();
        });
        return false;
        });
        /*
         * End ajax
         */

また、私が使用している私のウェブサイトへのリンクはこちらです(readysetfail.com)

4

2 に答える 2

3

これを試して:

$(".reply").on( "submit" , function(){
    var reply = $(this);
    ...
    $.post( "/comment.php", formdata, function( data ) {
        reply.children().slideUp();
        reply.children('.success').prepend(data);
        ...
    });
    ...
于 2012-05-12T17:26:06.770 に答える
1

$(this) を使用することに決めているかどうかはわかりませんが、そうでない場合は、フォームを参照する jQuery オブジェクト (イベント ハンドラーで $(this) を使用して取得) を変数に保存し、それを使用します。次のような終了関数:

$(".reply").on( "submit" , function(){
// Intercept the form submission
var formdata = $(this).serialize(); // Serialize all form data
var theForm = $(this);
// Post data to your PHP processing script
$.post( "/comment.php", formdata, function( data ) {
    // Act upon the data returned, setting it to .success <div>
    theForm.children().slideUp();
    theForm.children('.success').prepend(data);
    $('.hidden').hide();
});
return false;
});
于 2012-05-12T17:26:35.687 に答える