2011-04-05 35 views
0

我有一個網站,允許用戶通過jQuery在兩個不同的CSS網站之間切換。一旦用戶選擇一個,它會設置一個365天的cookie來記住用戶選擇的樣式表。我試圖找出一種方法,如果沒有設置cookie,在兩個樣式表之間隨機化。試圖隨機化樣式表,如果還沒有設置cookie

下面是相關的jQuery(核心和cookie插件在.js文件中加載較高)。我認爲我需要在其他方面添加某種隨機「抓取」。

if($.cookie("css")) { 
    $("link").attr("href",$.cookie("css")); 
}else{ 

} 
$(function() { 
    $("#designSwap li a").click(function() { 
     $("link").attr("href",$(this).attr('rel')); 
     $.cookie("css",$(this).attr('rel'), {expires: 365, path: '/'}); 
     var themeColor = 'dark'; 
     updateColor($(this).attr('class')); 
     return false; 
    }); 
}); 

這裏的HTML:

<ul id="designSwap"> 
    <li><a class="dark" href="#" title="Alternate Design #1" rel="/lib/css/common-dark.css"></a></li> 
    <li><a class="light" href="#" title="Default Design" rel="/lib/css/common.css"></a></li> 
    <li>Choose your scheme:</li> 
</ul> 

編輯:我有這件事,運行和發揮作用的位置:http://centerline.net,如果有人想看到樣式表的行動交換和cookie的設置。

+2

您可以將兩個類名稱/樣式表名稱存儲在數組中,隨機選擇0到1之間,然後選擇其中一個,然後將其發送到您的方法中,以更改樣式。 – 2011-04-05 15:44:14

+0

你也可以做那個服務器端。 – 2011-04-05 16:04:09

回答

1

var rand = Math.floor(Math.random()*2) 
if (rand > 0) 
    $("link").attr("href","/lib/css/common-dark.css"); 
else 
    $("link").attr("href","/lib/css/common.css"); 
+0

謝謝。這就是隨機化。現在我正在意識到下一個要求是讓這個隨機選擇在會議中保持不變。有沒有比設置短期cookie更好的解決方案? – Keefer 2011-04-05 19:06:54

+0

使用PHP $ _SESSION變量 – 2011-04-06 07:25:20