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 回答