11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,
Je ne comprends pas ce bloc de code quelqu'un pourrait y mettre des commentaires afin que je puisse le comprendre svp.Merci.

/**
 * 
 */
var ajaxHandlePush = [];
 
 
var ajaxHandle = function(event) {
 
    $(this).addClass("form-submitting");
 
    if(typeof event != "undefined") event.preventDefault();
    if(
        !isLogged
        &&
        $(this).hasClass("require-logged")
        &&
        !$(this).hasClass("not-send-on-logged")
    ) {
        var $element = $(this);
 
        if(_.find(ajaxHandlePush, function(value) { return value[0] == $element[0]; }) === undefined)
        {
            ajaxHandlePush.push($element);
        }
 
        return;
    }
 
    var $buttonSubmit;
 
    if($(this).is("form"))
    {
        $buttonSubmit = $(this).find("[type=submit]");
    }
    else
    {
        $buttonSubmit = $(this);
    }
 
    if($buttonSubmit.hasClass("btn")) $buttonSubmit.button("loading");
 
    var type = $(this).is("form") ? "POST" : "POST";
    var url = $(this).is("form") ? $(this).attr("action") : $(this).attr("href");
    var data = $(this).is("form") ? $(this).serialize() : $(this).data("post");
 
    $.ajax({
        type: type,
        url: url,
        data: data,
        context: $(this),
        success: function(data)
        {
            $(this).removeClass("form-submitting");
 
            if($buttonSubmit.data("finish-text"))
            {
                $buttonSubmit.button("finish");
            }
            else
            {
                $buttonSubmit.button("reset");
            }
 
            $(this).trigger("onSuccess", data);
        },
        error: function(jqXhr, textStatus, errorThrown)
        {
            $(this).removeClass("form-submitting");
 
            console.log("error ajax :: " + textStatus + errorThrown);
 
            $buttonSubmit.button("reset");
 
            $(this).trigger("onError", [jqXhr.responseText, jqXhr.status]);
        },
        dataType: "json"
    });
 
    return false;
};
 
$('form.ajax').live('submit', ajaxHandle);
$('a.ajax').live('click', ajaxHandle);