Heim >Web-Frontend >js-Tutorial >Detaillierte Einführung in die Verwendung der Funktion jQuery.ajaxSend()
Die Funktion
ajaxSend() wird verwendet, um die Callback-Funktion so festzulegen, dass sie ausgeführt wird, wenn die AJAX-Anfrage gesendet werden soll.
Dies ist eine globale AJAX-Ereignisfunktion, die verwendet wird, um die Ereignisbehandlungsfunktion an das ajaxSend-Ereignis einer beliebigen AJAX-Anfrage zu binden. Wenn die AJAX-Anfrage gesendet werden soll, wird das Ereignis ajaxSend ausgelöst und die gebundene Ereignisbehandlungsfunktion ausgeführt.
Diese Funktion muss für die jQuery-Objektinstanz aufgerufen werden und ajaxSend() bindet eine Handlerfunktion an das ajaxSend-Ereignis jedes übereinstimmenden Elements. Wenn die AJAX-Anfrage gesendet werden soll, werden die Verarbeitungsfunktionen für alle übereinstimmenden Elemente ausgelöst und ausgeführt. Dies innerhalb des Ereignishandlers zeigt auf das aktuelle DOM-Element.
Sie können diese Funktion mehrmals für dasselbe Element aufrufen, um mehrere Ereignishandler zu binden. Wenn das ajaxSend-Ereignis ausgelöst wird, führt jQuery die gebundenen Ereignisverarbeitungsfunktionen in der Reihenfolge der Bindung aus.
Ab jQuery 1.8 kann diese Funktion nur Handler an das ajaxSend-Ereignis des document-Objekts binden. Ereignishandler, die an andere Elemente gebunden sind, funktionieren nicht.
Wenn Sie den Optionsparameter global in jQuery.ajax() oder jQuery.ajaxSetup() auf false setzen, können Sie verhindern, dass die AJAX-Anfrage globale AJAX-Ereignisse auslöst.
Diese Funktion gehört zum jQuery-Objekt (Instanz).
Syntax
Diese Funktion ist neu in jQuery 1.0.
jQueryObject.ajaxSend( handler)
Parameter
Parameterbeschreibung
Handler-Funktionstyp Die Ereignishandlerfunktion, die ausgeführt werden muss, wenn dieses Ereignis ausgelöst wird .
Der Callback-Funktionshandler verfügt über drei Parameter: Einer ist das Event-Objekt, das das aktuelle Ereignis darstellt, der andere ist das jqXHR-Objekt, das die aktuelle AJAX-Anfrage sendet, und der dritte sind alle für diese AJAX-Anfrage festgelegten Parameteroptionen ( Objektobjekt einschließlich Standardparameteroptionen, die nicht angegeben werden müssen).
jqXHR-Objekt ist ein von jQuery gekapseltes XMLHttpRequest-Objekt (das die meisten seiner Eigenschaften und Methoden beibehält).
Rückgabewert
ajaxSend()Der Rückgabewert der Funktion ist vom jQuery-Typ und gibt das aktuelle jQuery-Objekt selbst zurück.
Beispiele und Anleitungen
Bitte beachten Sie den folgenden HTML-Beispielcode:
21222cb62e82bb01180fda983340a480CodePlayer16b28748ea4df4d9c2150843fecfba68
< ;div id="content2">Fokus auf den Austausch von Programmier- und Entwicklungstechnologien16b28748ea4df4d9c2150843fecfba68
62016ca42e031c37cc5fcfe252f5e052http://www.365mini.com16b28748ea4df4d9c2150843fecfba68
Das Folgende ist der jQuery-Beispielcode im Zusammenhang mit der Funktion ajaxSend(), um die spezifische Verwendung der Funktion ajaxSend() zu demonstrieren:
Der folgende Code sollte basierend auf früheren jQuery-Versionen ausgeführt werden 1.8 (Bitte beachten Sie, dass die Parameter der durch ajaxSend() festgelegten globalen Ereignisbehandlungsfunktion und der durch die beforeSend-Option von $.ajax() festgelegten Parameter der lokalen Ereignisbehandlungsfunktion unterschiedlich sind).
//当前 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,可以取消本次请求 } } );
Wenn die aktuelle jQuery Version 1.8 und höher ist, öffnet der obige jQuery-Code das Dialogfeld insgesamt nur einmal. Denn ab jQuery 1.8 muss die Handlerfunktion des ajaxSend-Ereignisses an das Dokumentobjekt gebunden werden, damit sie wirksam wird.
Daher sollten wir, unabhängig von der aktuellen Version von jQuery, die Handlerfunktion des ajaxSend-Ereignisses an das Dokumentobjekt binden, wenn keine besonderen Anforderungen bestehen.
$(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,可以取消本次请求 } } );
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Verwendung der Funktion jQuery.ajaxSend(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!