首頁  >  文章  >  web前端  >  關於JQuery($.load)事件的用法和分析_jquery

關於JQuery($.load)事件的用法和分析_jquery

WBOY
WBOY原創
2016-05-16 17:38:00930瀏覽

首先我們需要清楚的是jquery load方法是對jQuery.ajax()進行封裝以方便我們使用的一個方法,當我們需要處理較為複雜的邏輯時候,還是需要用到jQuery.ajax()這個比較全面的方法的。

呼叫load方法的完整語法格式:load( url, [data], [callback] )
其中:url是指要匯入檔案的位址。
data:可選參數;因為load不只可以導入靜態的html文件,還可以導入動態腳本,例如PHP文件,所以要導入的是動態文件時,我們可以把要傳遞的參數放在這裡。
callback:可選參數;是指呼叫load方法並且得到伺服器回應後,再執行的另一個函數。

下面給幾個用法範例:

1.載入一個php文件,該php文件不含傳遞參數

複製程式碼 程式碼如下:

$("#myID").load("/test.php");//在id為#myID的元素裡導入test.php運行後的結果

2. 加載一個php文件,該php文件含有一個傳遞參數

複製代碼 代碼如下:

$("#myID").load("/test.php",{"name":"Adam"});//導入的php檔案包含一個傳遞參數,類似於請求url:/test.php?name=Adam

3. 載入一個php文件,該php文件含有多個傳遞參數。註:參數間以逗號分隔

複製程式碼 程式碼如下:


程式碼如下:

"#myID").load("/test.php",{"name":"Adam","site":"www.lhy-seo.com"});//導入的php檔案包含一個傳遞參數,類似請求url:/test.php?name=Adam&site=www.phpernote.com

4. 加載一個php文件,該php文件以數組作為傳遞參數
複製代碼


程式碼如下:

$("#myID").load("/test.php",{'myinfo[]', ["Adam", "www.lhy-seo.com" ]});//導入的php檔案含有一個陣列傳遞參數。

注意:使用load,這些參數是以POST的方式傳遞的,因此在/test.php裡,不能用GET來取得參數。

5. 如何使用 callback,例如我們要在load方法得到伺服器回應後,慢慢顯示載入的內容,就可以使用callback函數。 程式碼如下:
複製程式碼


程式碼如下:


$("#go" ).click(function(){
$("#myID").load("welcome.php", {"lname":"Cai", "fname":"Adam", function(){
$("#myID").fadeIn('slow');}

);});

6. 載入頁面片段 複製程式碼


程式碼如下:

$("#result").load( "/test.html #container");

7. 防止jquery load使用快取的方法複製程式碼


程式碼如下:


$(document).ready(>
$(document).ready(function(){$("#labels").load("/test.html");//在頁面裝載時,在ID為#labels的DOM元素裡插入test.html的內容。 );

當我更新了test.html以後,在IE7裡load方法仍舊在使用舊的test.html,就算我按刷新鍵也不管用。還好jQuery提供一個防止ajax使用快取的方法,把下面的語句加在head的javascript檔裡,就可以解決問題。

複製程式碼 程式碼如下:

$.ajaxSetup({


$.ajaxSetup({
});

此外我再介紹幾種方法解決快取的方法。注意:我沒有在jQuery load的問題上測試過,這些方法僅供參考!

1.更改檔名,例如把test.html改成lables_new.html,但這是沒有辦法的辦法,通常沒有人這麼做。

2.在test.html後面加上特定時間,例如test.html?20081116。在實際工作中,在我更新css/javascript檔案後,我都是用這種方法來防止檔案被快取。
3.在test.html文件的頂部加入以下聲明: 複製代碼

代碼如下:

另外在使用 jquery load 的時候要注意的是:

(1)如果綁定給window對象,則會在所有內容載入後觸發,包括窗口,框架,對象和圖像。如果綁定在元素上,則當元素的內容載入完畢後觸發。

(2)只有當在這個元素完全載入完之前綁定load的處理函數,才會在他載入完後觸發。如果之後再綁定就永遠不會觸發了。所以不要在$(document).ready()裡綁定load事件,因為jQuery會在所有DOM載入完成後再綁定load事件。
(3)jQuery 使用瀏覽器的 .innerHTML 屬性來解析被取回的文檔,並把它插入當前文檔。在這個過程中,瀏覽器常會從文件中過濾掉元素,例如 , 或 元素。結果是,由 .load() 取回的元素可能與瀏覽器直接取回的文件不完全相同。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn