後得到了系統設置,當用戶點擊一個按鈕來交換樣式表。 Cookie已設置。設置cookie來影響樣式/調用功能DOM已準備就緒
jQuery(document).ready(function() {
$(function() {
$("#designSwap li a").click(function() {
$("link").attr("href",$(this).attr('rel'));
$.cookie("cssSessionColor",$(this).attr('class'), {expires:null, path: '/'});
$.cookie("css",$(this).attr('rel'), {expires: 365, path: '/'});
updateColor($(this).attr('class'));
return false;
});
});
});
否則,如果用戶沒有設置樣式表之間的偏好,挑選一個隨機並設置只是一個會話cookie:
if($.cookie("css")) {
$("link").attr("href",$.cookie("css"));
}else if($.cookie("cssSession")) {
$("link").attr("href",$.cookie("cssSession"));
}else{
var rand = Math.floor(Math.random()*2)
if (rand > 0) {
$("link").attr("href","/lib/css/common-dark.css");
$.cookie("cssSessionColor","dark", {expires:null, path: '/'});
$.cookie("cssSession","/lib/css/common-dark.css", {expires:null, path: '/'});
}else{
$("link").attr("href","/lib/css/common.css");
$.cookie("cssSessionColor","light", {expires:null, path: '/'});
$.cookie("cssSession","/lib/css/common.css", {expires:null, path: '/'});
};
}
所有這一切工作正常。問題在於爲網站上的Flash視頻播放器設置顏色。 (updateColor函數)。如果用戶點擊鏈接來選擇顏色,但它不工作,只需閱讀cookie。
我們思考的問題是它的發射前的DOM已準備就緒。
我們正在試圖做的是確保我們打電話,一旦準備就緒功能擊中調整顏色。這很可能是一件容易的事情,我們只是沒有看到它。
我會用你最喜歡的調試器(或放警報),以確定是什麼先取跑,什麼時候updateColor被調用你的cookie被返回。我懷疑你的執行順序關閉(雖然有沒有足夠的證明確定是肯定的),你的Cookie是空當你把它放在頁面加載。 – 2011-04-14 20:12:58