解释jQuery代码示例

时间:2012-09-05 19:26:37

标签: jquery

我继承了以下jQuery代码片段作为jquery / AJAX验证系统的一部分。我只需要有人一行一行地解释代码,这样我就可以理解如何更改脚本的一些操作:

// Use Ajax to send everything to form processing file
submitHandler: function(form) {
    $("#send").attr("value", "Sending...");
    $(form).ajaxSubmit({
        success: function(responseText, statusText, xhr, $form) {
            $(form).slideUp("slow");
        $("#response").html(responseText).hide().slideDown("slow");
        }
    });
    return false;
}

具体来说,线条重新成功。 。 。 '对我来说特别感兴趣,因为我可以看到$(form).slideUp(“slow”)导致表单缓慢向上滑动(有点明显,没有?)。 'slideUP'动作不会将我带到表单的顶部,但总是位于表单中间的某个位置。如果我更好地理解jQuery,我可能会弄清楚如何使'slideUp'总是把我带到表单的顶部。

2 个答案:

答案 0 :(得分:4)

该函数用于处理submit元素的form事件。

submitHandler: function(form) {

点击发送按钮后,发送值应变为正在发送...

    $("#send").attr("value", "Sending...");

函数ajaxSubmit将没有页面刷新的表单提交到另一个URL。

    $(form).ajaxSubmit({

提交后,将调用此函数。其中responseText是从服务器返回的文本。 statusText是HTTP状态代码。 xhr是使用的XMLHttpRequest对象。 $form是已处理的form元素。

        success: function(responseText, statusText, xhr, $form) {

现在,提交后,您将以动画方式向上滑动form

            $(form).slideUp("slow");

您正在填充#response div,即向用户显示信息的位置,方便地向下滑动。

        $("#response").html(responseText).hide().slideDown("slow");
        }
    });

您正在从正常的HTTP提交中停止表单。

    return false;
}

答案 1 :(得分:1)

我的叙述性说明以//#

开头
// Use Ajax to send everything to form processing file

//# Create a function called 'submitHandler'
submitHandler: function(form) {

    //# Set a form field saying the form is being sent.
    $("#send").attr("value", "Sending...");

    //# Using the form, sumit its value using jQuery's ajaaax
    $(form).ajaxSubmit({

        //# Should the result be successful, call this function
        success: function(responseText, statusText, xhr, $form) {
            //# Slide the form into view (I believe)
            $(form).slideUp("slow");
            //# This puts the return value of the AJAX caall into #response
            $("#response").html(responseText).hide().slideDown("slow");
        }
    });

    //# I'm pretty sure that under jQuery this will stop the default action,
    //# which would be a regular form submit.
    return false;
}