我有jQuery的問題,例如,我有這樣的代碼:如何防止頁面重新加載?
<a href="#" id="docs"><img id="icon" src="icons/docs.png"/></a>
$("#docs").click(function() {
$("#content").load("docs.php").hide().fadeIn("slow");})
所有的東西工作正常,但,當我重新載入追溯到預覽情況的網站,但我想要的網站仍然像點擊鏈接時一樣。
我有jQuery的問題,例如,我有這樣的代碼:如何防止頁面重新加載?
<a href="#" id="docs"><img id="icon" src="icons/docs.png"/></a>
$("#docs").click(function() {
$("#content").load("docs.php").hide().fadeIn("slow");})
所有的東西工作正常,但,當我重新載入追溯到預覽情況的網站,但我想要的網站仍然像點擊鏈接時一樣。
您可以使用#標籤的URL來檢測這一點。
首先,把你的ajax請求放在一個函數中,然後在兩種情況下調用這個函數:a)當用戶點擊鏈接時; b)如果hashtag是「#load_docs」。
$(document).ready(function() {
function load_contents() {
$("#content").load("docs.php").hide().fadeIn("slow");
}
$("#docs").click(function() {
load_contents();
});
var hashtag = window.location.hash;
if (hashtag == "#load_docs") load_contents();
});
不要忘記添加href="#load_docs"
你的鏈接:
<a href="#load_docs" id="docs"><img id="icon" src="icons/docs.png"/></a>
謝謝你這個作品:) – 2012-02-29 06:26:19
只要確保你在return false;
裏面點擊處理程序。
所以:
$("#docs").click(function() {
$("#content").load("docs.php").hide().fadeIn("slow");
return false;
})
從點擊處理程序返回false是否與防止用戶重新加載頁面有關? – villecoder 2012-02-28 21:56:20
我想他是說他不希望鏈接'#docs'刷新頁面,返回false將防止發生,因爲它不會執行實際的點擊,只是處理程序中的代碼。 – TheDelChop 2012-02-28 21:58:39
編號他在說(引用此處)「當我重新加載網站時,它會回到預覽狀態」。他沒有說「當我點擊鏈接」。 – villecoder 2012-02-28 22:00:18
你不能,但你可以警告用戶不好的事情會發生。 http://stackoverflow.com/questions/3221161/how-to-pop-up-an-alert-box-when-the-browsers-refresh-button-is-clicked – asawyer 2012-02-28 21:53:29
有可能你可以使用jQuery/ajax來設置一個cookie /會話,然後使用服務器端代碼來有條件地加載ajax加載的相同內容,如果cookie存在的話。如果一旦用Ajax加載內容就設置cookie,則用戶可以重新加載頁面,並且服務器將在加載頁面時加載內容。 – 2012-02-29 00:34:56