Heim >Web-Frontend >js-Tutorial >Detaillierte Einführung in die Verwendung der Funktion jQuery.ajaxSend()

Detaillierte Einführung in die Verwendung der Funktion jQuery.ajaxSend()

巴扎黑
巴扎黑Original
2017-07-03 10:49:571409Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn