Syntax:
$("#msg").ajaxSend(function(evt,request,settings){});
Funktion ausführen, bevor die AJAX-Anfrage gesendet wird. Ajax-Events.
Das XMLHttpRequest-Objekt und die Einstellungen werden als Parameter an die Callback-Funktion
$("# msg") .ajaxSend(function(evt,request,settings){}) ist ein globales Ereignis , das heißt
Solange die Seite diese Funktion definiert , dann wird diese Funktion vor einer Ajax-Anfrage ausgeführt. Dies hat nichts mit dem Selektor #msg vor der Funktion zu tun oder $.Anfrage posten
Nichts zu tun. Schauen Sie sich das folgende Beispiel an:Das globale Ereignis ist nur an einer Stelle definiert $("#msg").ajaxSend(function(){});
<script type="text/javascript"> $(document).ready(function() { $("#msg").ajaxSend(function() { alert("无论点击按钮1还是按钮2,都会触发我"); }); $("#btn1").click(function() { $.post("test1", function() { $("#msg").val("haha"); }); }); $("#btn2").click(function() { $.get("test2", function() { $("#msg").val("haha"); }); }); }) </script> <body> <input type="text" id="msg" value="" /> <button id="btn1"> 按钮1 </button> <button id="btn2"> 按钮2 </button> </body>
Wir haben festgestellt, dass das globale Ereignis ausgelöst wird, egal ob wir auf id="btn1" klicken, um die $.post-Anfrage auszuführen, oder auf id="btn2", um die $.get-Anfrage auszuführen.
Erforderlich Beachten Sie, dass das oben definierte Ereignis $("#msg").ajaxSend(function(){}); in keinemonClick-Ereignis enthalten ist.
Wenn es in einem Klickereignis in BTN1 oder BTN2 definiert ist, erhöht das globale Ereignis die Anzahl der Ausführungen, anstatt sie zu überschreiben.
$("#msg").ajaxStart(function(){ }) und $("#msg")ajaxSend(function(){ }) werden meist auf die gleiche Weise verwendet Ereignisse.
Der Unterschied besteht darin, dass ajaxStart früher ausgeführt wird als ajaxSend. Darüber hinaus ist die Ausführungsfunktion von $("#msg").ajaxStart(function(){ } ) Keine Parameter
und die Ausführungsfunktion von $("#msg").ajaxSend(function(evt, request, Settings){ }) kann Parameter haben.
Obwohl es sich bei der Funktion um eine globale Funktion
handelt, können wir auf der Grundlage unterschiedlicher Parameterwerte unterschiedliche Effekte auf verschiedene Auslöser erzeugen :Im Vergleich zum ersten Beispiel fügt das zweite Beispiel Parameter zur ajaxSend-Funktion hinzu und beurteilt die Funktion.
<script type="text/javascript"> $(document).ready(function() { $("#msg").ajaxSend(function(event, obj, options) { if (options.url == "test1") { alert("按钮1"); } else if (options.url == "test2") { alert("按钮2"); } }); $("#btn1").click(function() { $.post("test1", function() { $("#msg").val("haha"); }); }); $("#btn2").click(function() { $.get("test2", function() { $("#msg").val("haha"); }); }); }) </script> <body> <input type="text" id="msg" value="" /> <button id="btn1"> 按钮1 </button> <button id="btn2"> 按钮2 </button> </body>
Achten Sie bei der Funktion $("#msg").ajaxSend(function(event, obj, options){}) auf die formalen Parameter, sofern die Positionen übereinstimmen , welche Zeichen verwendet werden Es spielt keine Rolle
Ereignis – Es gibt viele spezifische Attribute, die das Ereignisobjekt enthalten. Das wichtigste Attribut, das Sie wissen müssen, ist, dass das Objekt {Typ: Ereignisname}. Der Ereignisname ist ajax Global event,
in diesem Beispiel ist ajaxSend, was bedeutet, dass das Ereignisobjekt einen Attributtyp hat, dessen Wert „ajaxSend“ ist
obj
- Enthält das XMLHttpRequest-Objekt, hauptsächlich die Anforderungsstatusparameter des Objekts.Optionen
- Enthält Optionen, die in AJAX-Anfragen verwendet werden, hauptsächlich einige Einstellungsparameter der aktuellen Anfrage, wie z. B. die oben verwendete URLWenn Sie Um alle Eigenschaften anzuzeigen, können Sie mit console.info() auf der Konsole drucken, wie im Screenshot gezeigt:
Das obige ist der detaillierte Inhalt vonjQuery-Funktion $.ajaxSend(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!