Maison  >  Article  >  interface Web  >  Introduction détaillée à l'utilisation de la fonction jQuery.ajaxSend()

Introduction détaillée à l'utilisation de la fonction jQuery.ajaxSend()

巴扎黑
巴扎黑original
2017-07-03 10:49:571393parcourir

La fonction

ajaxSend() est utilisée pour définir la fonction de rappel à exécuter lorsque la requête AJAX est sur le point d'être envoyée.

Il s'agit d'une fonction d'événement AJAX globale utilisée pour lier la fonction de gestion des événements à l'événement ajaxSend de toute requête AJAX. Lorsque la requête AJAX est sur le point d'être envoyée, l'événement ajaxSend sera déclenché et la fonction de gestion des événements liés sera exécutée.

Cette fonction doit être appelée sur l'instance d'objet jQuery, et ajaxSend() liera une fonction de gestionnaire à l'événement ajaxSend de chaque élément correspondant. Lorsque la requête AJAX est sur le point d'être envoyée, les fonctions de traitement sur tous les éléments correspondants seront déclenchées et exécutées. Ceci dans le gestionnaire d'événements pointera vers l'élément DOM actuel.

Vous pouvez appeler cette fonction plusieurs fois sur le même élément pour lier plusieurs gestionnaires d'événements. Lorsque l'événement ajaxSend est déclenché, jQuery exécutera les fonctions de traitement des événements liés dans l'ordre de liaison.

À partir de jQuery 1.8, cette fonction ne peut lier les gestionnaires qu'à l'événement ajaxSend de l'objet document. Les gestionnaires d'événements liés à d'autres éléments ne fonctionneront pas.

Si vous définissez le paramètre d'option global sur false dans jQuery.ajax() ou jQuery.ajaxSetup(), vous pouvez empêcher la requête AJAX de déclencher des événements AJAX globaux.

Cette fonction appartient à l'objet (instance) jQuery.

Syntaxe

Cette fonction est nouvelle dans jQuery 1.0.

jQueryObject.ajaxSend( handler )

Paramètre

Description du paramètre

Type de fonction de gestionnaire La fonction de gestionnaire d'événement qui doit être exécutée lorsque cet événement est déclenché .

Le gestionnaire de fonction de rappel a 3 paramètres : l'un est l'objet Event représentant l'événement en cours, l'autre est l'objet jqXHR qui envoie la requête AJAX actuelle, et le troisième correspond à toutes les options de paramètres définies pour cette requête AJAX ( Objet objet incluant les options de paramètres par défaut qui n'ont pas besoin d'être spécifiées).

L'objet jqXHR est un objet XMLHttpRequest encapsulé par jQuery (conservant la plupart de ses propriétés et méthodes ).

Valeur de retour

ajaxSend()La valeur de retour de la fonction est de type jQuery et renvoie l'objet jQuery actuel lui-même.

Exemples et instructions

Veuillez vous référer à l'exemple de code HTML suivant :

21222cb62e82bb01180fda983340a480CodePlayer16b28748ea4df4d9c2150843fecfba68

19825a82bd5b333a54998b9c33e866ecFocus sur le partage de technologies de développement de programmation16b28748ea4df4d9c2150843fecfba68

62016ca42e031c37cc5fcfe252f5e052http://www.365mini.com16b28748ea4df4d9c2150843fecfba68

Ce qui suit est un exemple de code jQuery lié à la fonction ajaxSend() pour démontrer l'utilisation spécifique de la fonction ajaxSend() :

Le code suivant doit être exécuté en fonction des versions de jQuery antérieures à 1.8 (veuillez noter que via Les paramètres de la fonction de gestion d'événements globale définie par ajaxSend() et la fonction de gestion d'événement locale définie par l'option beforeSend de $.ajax() sont différents).

//当前 jQuery版本:1.7.2 (必须是1.8之前的版本)
$("div").ajaxSend( function(event, jqXHR, options){
    alert("处理函数1: 当前元素的id为" + this.id + ",请求的url为" + options.url);
} );
$("div").ajaxSend( function(event, jqXHR, options){
    alert("处理函数2:请求方式为" + options.type);
} );
// 执行该AJAX请求,会弹出6次对话框
// 因为当前页面有3个div元素,我们为每个div元素绑定了2个事件处理函数
$.ajax( {
    url: "index.html"
} );
// 执行该AJAX请求,会弹出7次对话框
// 因为当前页面有3个div元素,我们为每个div元素绑定了2个事件处理函数
// 此外$.ajax()自己通过beforeSend选项绑定了一个局部的ajaxSend事件处理函数,它会执行一次
// 因此总共弹出7次对话框
$.ajax( {
    url: "myurl" ,
    beforeSend: function(jqXHR, options){
       alert( "即将开始发送!" );
       // return false; // 如果返回false,可以取消本次请求
    }
} );

Si le jQuery actuel est la version 1.8 ou supérieure, le code jQuery ci-dessus n'apparaîtra dans la boîte de dialogue qu'une seule fois au total. Car à partir de jQuery 1.8, la fonction de gestionnaire de l'événement ajaxSend doit être liée à l'objet document pour prendre effet.

Par conséquent, quelle que soit la version actuelle de jQuery, s'il n'y a pas de besoins particuliers, nous devons lier la fonction de gestionnaire de l'événement ajaxSend à l'objet document.

$(document).ajaxSend( function(event, jqXHR, options){
    alert("处理函数1: 当前元素的id为" + this.id + ",请求的url为" + options.url);
} );
$(document).ajaxSend( function(event, jqXHR, options){
    alert("处理函数2:请求方式为" + options.type);
} );
// 执行该AJAX请求,会弹出2次对话框
// 因为document对象上绑定了2个事件处理函数
$.ajax( {
    url: "index.html"
} );
// 执行该AJAX请求,会弹出3次对话框
// 因为$.ajax()自己通过beforeSend选项绑定了一个局部的ajaxSend事件处理函数,它会执行一次
// 我们还通过ajaxSend()额外绑定了两个事件处理函数,会再弹出2次
$.ajax( {
    url: "myurl" ,
    // global: false , // 可以禁止触发全局的Ajax事件
    beforeSend: function(jqXHR, options){
        alert( "即将开始发送!" );
        // return false; // 如果返回false,可以取消本次请求
    }
} );

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn