2011-04-14 76 views
0

後得到了系統設置,當用戶點擊一個按鈕來交換樣式表。 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已準備就緒。

我們正在試圖做的是確保我們打電話,一旦準備就緒功能擊中調整顏色。這很可能是一件容易的事情,我們只是沒有看到它。

+0

我會用你最喜歡的調試器(或放警報),以確定是什麼先取跑,什麼時候updateColor被調用你的cookie被返回。我懷疑你的執行順序關閉(雖然有沒有足夠的證明確定是肯定的),你的Cookie是空當你把它放在頁面加載。 – 2011-04-14 20:12:58

回答

0

您有:

$(function() { }); 

嵌套:

jQuery(document).ready(function() { }); 

這意味着前者爲後者的速記同樣的事情。我敢打賭,這是由於您將一個匿名函數綁定到document.ready上的document.ready時導致您的問題。 Document.ready因此已經發生並且不會調用該函數。

編輯:我想過這個問題更多,看來我可能是錯的....從來沒那麼做(沒有理由),但是這實際上做的工作,因此是不是你的問題。我會在這裏留下帖子,以便你可以糾正它。 :)

http://jsfiddle.net/bcEQZ/

+0

所以我應該這樣做: 'jQuery的(文件)。就緒(函數(){ $({ }); });' 取而代之的是: '// jQuery的總體準備語句 jQuery的(文件)。就緒(函數(){ $(函數(){ }); });' 無論如何,就像你說的,這不是什麼阻礙了我。 – Keefer 2011-04-14 20:57:07

+0

編號'$({});'無效。剛剛削減一點。 '$(function(){//你的東西在這裏});'。我沒有看過這些,但他們看起來像質量:http://blog.themeforest.net/screencasts/jquery-for-absolute-beginners-video-series/ – 2011-04-15 15:01:21