如果你只想改變div加載頁面時(這意味着沒有爲你的div運行幻燈片,改變你的html到喜德/告訴他們)
我能想到3個技術途徑:
1)您可以嘗試爲以前的答案(來自@Charlie)使用Cookie存儲當前的股利。
這在舊的瀏覽器工作(和jQuery將採取crossbrowsing照顧)
UPDATE一個例子使用的好處使用jQuery(jquery.cookie插件)
後餅乾您的jQuery添加jquery.cookie
插件
<script src="jquery-1.9.1.js"> </script>
<script src="jquery.cookie.js"> </script>
假設我們/你有這樣的HTML的div:
//Notice the divs are using a prefixed id with numeric ending
//(I think it's the best option)
<div id="mdiv1">
<ul><li><a href="#" id="mlink"> hello 1 </a></li></ul>
</div>
<div id="mdiv2">
<ul><li><a href="#" id="mlink"> hello 2</a></li></ul>
</div>
<div id="mdiv3">
<ul><li><a href="#" id="mlink"> hello 3</a></li></ul>
</div>
這jQuery代碼:
<script>
$(document).ready(function(){
//hide all divs just for the purpose of this example,
//you should have the divs hidden with your css
$('#mdiv1').hide();
$('#mdiv2').hide();
$('#mdiv3').hide();
//check if the cookie is already setted
if ($.cookie("currentDiv")===undefined){
$.cookie("currentDiv",1);
}else{ //else..well
//get and increment value, let's suppse we have just 3 divs
var numValue = parseInt($.cookie("currentDiv"));
numValue = numValue + 1;
if (numValue>3){
//restart to 1
$.cookie("currentDiv",1);
}
else{ //no issues, assign the incremented value
$.cookie("currentDiv",numValue.toString());
}
//show the div
$('#mdiv'+$.cookie("currentDiv")).show();
}
});
</script>
2)由於@Ra Mon評論說,localStorage是另一個不錯的選擇(現代瀏覽器)來跟蹤最後加載的div。
我覺得它比餅乾更優雅,但它不工作oldbrowsers的缺點,當然你也可以使用Modernizer至特徵檢測和應用一些polyfill(使用cookies)得到crossbrowsing。
3)第三種方法(只要你並不需要「動態」 HTML),我想使用服務器端的會話(PHP/CSS)保持最後一個div加載的軌道提/渲染並渲染下一個。即使你可以從服務器端處理cookie,如果不想使用基於內存的會話,缺點將會失去緩存。
嘗試一些代碼並返回更新您的問題與更多和/或具體細節,以便有人能夠幫助你,無論你選擇的方法。
@RyanS我的意思是:
關於「動態」如果你要改變,只有當頁面加載股利,那麼就沒有必要使用客戶方腳本的,這可以從服務器實現側。
關於「緩存」,如果您要更改服務器端的頁面/ html,則Web服務器必須將Web頁面再次「提供」到WebBrowser/Client,因爲它從上次更改查看(丟失緩存,添加一些負載流量,帶寬使用)< < < <更好地說,如果瀏覽器確定頁面自上次查看後(並且將會)將發生變化,將再次請求html /頁面。
如果每次重新加載整個頁面,您將如何跟蹤顯示哪個div? –
我想你想爲你的div創建一種幻燈片,對不對?順便說一句,你發佈的代碼似乎對我來說太過於jQuery。請添加您的html代碼。 – Allende
是的,我想要一個幻燈片,但它只需要改變頁面重新加載的重複順序,這是jQuery,但JavaScript也是oke – user3438393