2011-12-13 75 views
2

任何人都可以幫助我,我無法在互聯網上找到一個腳本,在jQuery中做到這一點。我需要記住下拉菜單的最後一個狀態,以便在頁面加載時已經選擇了下拉選項。 cookie過期日期應該是90天,或者讓我在腳本中指定。由於我已經在我的頁面上使用jQuery,我希望這個cookie腳本使用jquery,jquery cookie插件。先謝謝你。我不是程序員,但我嘗試。jquery cookie記住下拉菜單的最後狀態

<body onLoad="GETcookie()"> 
<select onChange="SETcookie()"> 
<option value="1">1</option> 
<option value="2">2</option> 
<option value="3">3</option> 
</select> 
+0

* Ahem。*您不需要jQuery來管理cookie。只需找到* Javascript *安裝程序即可爲您管理它。 '' –

+1

並閱讀本文,最後有一些有用的功能:http://www.quirksmode.org/js/cookies.html –

+0

(*雖然我確實希望jQuery庫包含'.cookie ()'函數的工作方式就像'$ .data()'一樣工作,因爲在Javascript的對接中cookie有點痛苦。*'') –

回答

9

有了,我已經包括在內,你可以獲取和設置Cookie插件。

您的代碼看起來有點像這樣:

//checks if the cookie has been set 

if($.cookie('remember_select') != null) { 

    // set the option to selected that corresponds to what the cookie is set to 

    $('.select_class option[value="' + $.cookie('remember_select') + '"]').attr('selected', 'selected'); 

} 

// when a new option is selected this is triggered 

$('.select_class').change(function() { 

    // new cookie is set when the option is changed 

    $.cookie('remember_select', $('.select_class option:selected').val(), { expires: 90, path: '/'}); 

}); 

這裏是你select會是什麼樣子:

<select class="select_class"> 
    <option value="1">Row 1</option> 
    <option value="2">Row 2</option> 
    <option value="3">Row 3</option> 
</select> 

下面是它的jsfiddle演示:http://jsfiddle.net/RastaLulz/3HxCF/3/

這裏是jQuery cookie插件,因爲你還沒有它:http://pastebin.com/CBueT8LP

+0

令人驚歎。一直在尋找這樣的事情3天現在 – ClosDesign

+0

這隻適用於選擇框,但如果有多個選擇框只能記住第一個。此代碼可以用於多個選擇框嗎? – JoMojo

1

首先不做身體的onLoad(應小寫字母爲onload),但在我的例子中,你不需要你的onload和平變化 但:

// This replace onload 
$(function() { 
    // Read your cookie and other things up to you to do... 
    $.cookie('the_cookie'); 

    // on change of your select 
    $('select').on('change', function() { 
    // Set the cookie 
    $.cookie('the_cookie', 'the_value', { expires: 90, path: '/'}); 
    }); 

}); 

PS:我的腳本jQuery 1.7(對於),所以看看你是否是最新的!

編輯:設置90天后過期

+0

你可以在http://jsfiddle.net給我一個例子,因爲我嘗試過並且沒有工作。再說,不是程序員,一定是搞砸了。謝謝。 –

+0

Josh Foskett在http://jsfiddle.net/RastaLulz/3HxCF/3/上做了一個,你可以看看它的工作原理。 – user1040899