jQuery $.ajaxSend(),jquery.ajaxsend

來源:互聯網
上載者:User

jQuery $.ajaxSend(),jquery.ajaxsend

文法:

$("#msg").ajaxSend(function(evt,request,settings){});
AJAX請求發送前執行函數。Ajax事件。

XMLHttpRequest對象和設定作為參數傳遞給回呼函數

$("#msg").ajaxSend(function(evt,request,settings){})是全域事件,也就是說,

只要該頁面定義了這個函數,那麼,在每個ajax請求前都會執行該函數,這既與該函數前面的選取器#msg無關,

也與用$.get還是$.post請求無關。看下面例子:

<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>
上面只在一處定義了全域事件$("#msg").ajaxSend(function(){});

我們發現無論是單擊id="btn1"執行$.post請求,還是單擊id="btn2"執行$.get請求,都會觸發全域事件.

需要注意的是上面定義$("#msg").ajaxSend(function(){});事件不在任何一下onClick事件中。

如果是定義在btn1或btn2中的任何一個click事件中,那麼,該全域事件會增加執行次數,而不是覆蓋。

$("#msg").ajaxStart(function(){ })與$("#msg")ajaxSend(function(){ })函數使用方法相大部分相同,也是全域事件.

區別是ajaxStart執行的順序早於ajaxSend執行,另外,$("#msg").ajaxStart(function(){ })的執行函數無參數

而$("#msg").ajaxSend(function(evt, request, settings){ })的執行函數可以有參數。

這樣,雖然該函數是全域函數,我們可以根據參數值的不同而讓其對不同的觸發產生不同的效果看如下的例子:

<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>
第二個例子和第一個相比在ajaxSend函數中加入了參數並在函數裡進行了判斷。

對於$("#msg").ajaxSend(function(event, obj, options){})函數,注意對於形參來說,只要位置對應,用什麼字元來表示是無所謂

event - 包含event對象具體的屬性主要有很多,需要知道的一個最重要的屬性是該對象包含{type:事件名}事件名就是ajax全域事件,

在此例中為ajaxSend,也就是說event對象有一個屬性type其值為"ajaxSend"

obj - 包含XMLHttpRequest對象,主要是該對象的請求狀態參數。

options - 包含AJAX請求中使用的選項,主要是當前請求的一些設定參數比如上面用到的url

如果想查看全部的屬性,可用console.info()列印到控制台,如:



作者:itmyhome



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.