jQuery庫的.load()
函數允許您有選擇地從另一個頁面加載元素(受特定規則約束)。我想知道是否有可能中止的加載過程。正在中止jQuery()。load()
在我們的應用程序中,用戶可以瀏覽項目列表。他們可能會選擇單擊一個按鈕,該按鈕可從另一文檔加載並顯示有關項目的附加信息(可能需要一些時間)。如果他們在清單中選擇了另一個項目,而仍在發生,我希望加載被中止。
這可能嗎?它甚至值得嗎?有任何想法嗎?
丹
jQuery庫的.load()
函數允許您有選擇地從另一個頁面加載元素(受特定規則約束)。我想知道是否有可能中止的加載過程。正在中止jQuery()。load()
在我們的應用程序中,用戶可以瀏覽項目列表。他們可能會選擇單擊一個按鈕,該按鈕可從另一文檔加載並顯示有關項目的附加信息(可能需要一些時間)。如果他們在清單中選擇了另一個項目,而仍在發生,我希望加載被中止。
這可能嗎?它甚至值得嗎?有任何想法嗎?
丹
您可以通過手動使用jQuery.ajax
做到這一點。它將返回一個XMLHttpRequest
對象,您可以根據需要調用abort
。在成功處理程序,您可以用jQuery.html
尼克的答案几乎是我所需要的,但並不完全。我正在使用.load()來僅加載頁面中的圖像。因此,擴大對尼克的回答是......
所以不是...
$('#myElement').load('mypage.htm #myImage');
現在,我使用...
var xhr = $.ajax({
url: 'mypage.htm',
success: function(data) {
$("#myElement").html($(data).find("#myImage"));
}
});
//if needed, abort the request later..
xhr.abort();
$("#myElement").load("/mypage #mayImage", function(response, status, xhr) {
if (status == "error") {
xhr.abort();
}
});
應該像這樣。
或者在另一個事件上,我發一個長字段驗證,用戶改變的內容,我想停止以前的檢查重新檢查:
xhr.abort();
$("#myElement").load("/mypage #mayImage", function(response, status, xhr) {
if (status == "error") {
xhr.abort();
}
});
完美答案;謝謝。 – 2010-06-09 16:23:29
+1謝謝你好回答 – gray 2013-05-12 15:11:47