我在这里有简单的切换(按钮切换)功能,但我不知道如何添加cookie以及当用户点击按钮时如何记住位置。
任何人都可以帮我在这里添加cookie吗?
$(document).ready(function(){
$("a.switch_thumb").toggle(function(){
$(this).addClass("swap");
$("ul.display").fadeOut(100, function() {
$(this).fadeIn(100).addClass("thumb_view");
});
},
function () {
$(this).removeClass("swap");
$("ul.display").fadeOut(100, function() {
$(this).fadeIn(110).removeClass("thumb_view");
});
});
});
答案 0 :(得分:1)
查看此插件https://github.com/carhartl/jquery-cookie非常简单,在您添加之后,您可以添加一个标记,如
$.cookie('cookie_button', 'pressed'); //when pressed or
$.cookie('cookie_button', 'not_pressed'); //if is the case
然后在加载页面时检查cookie值,以便记住用户上次选择
将此添加到您的头部
<script>
/**
* jQuery Cookie plugin
*
* Copyright (c) 2010 Klaus Hartl (stilbuero.de)
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
*/
jQuery.cookie = function (key, value, options) {
// key and at least value given, set cookie...
if (arguments.length > 1 && String(value) !== "[object Object]") {
options = jQuery.extend({}, options);
if (value === null || value === undefined) {
options.expires = -1;
}
if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date();
t.setDate(t.getDate() + days);
}
value = String(value);
return (document.cookie = [
encodeURIComponent(key), '=',
options.raw ? value : encodeURIComponent(value),
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
options.path ? '; path=' + options.path : '',
options.domain ? '; domain=' + options.domain : '',
options.secure ? '; secure' : ''
].join(''));
}
// key and possibly options given, get cookie...
options = value || {};
var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent;
return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
};
</script>
<script type="text/javascript">
$(document).ready(function(){
if($.cookie("button")=="thumb_view"){
$('ul.display').addClass($.cookie("button"));
$("a.switch_thumb").addClass("swap");
}else{
$('ul.display').removeClass($.cookie("button"));
$("a.switch_thumb").removeClass("swap");
}
$("a.switch_thumb").toggle(function(){
$(this).addClass("swap");
$("ul.display").fadeOut("fast", function() {
$(this).fadeIn("fast").addClass("thumb_view");
});
$.cookie("button", "thumb_view");
}, function () {
$.cookie("button", "not_thumb_view");
$(this).removeClass("swap");
$("ul.display").fadeOut("fast", function() {
$(this).fadeIn("fast").removeClass("thumb_view");
});
$.cookie("button", "not_thumb_view");
});
});
</script>
答案 1 :(得分:0)
这个怎么样?这将根据事实将button_cookie设置为值1或0,无论用户是偶数还是奇数次点击按钮
$(document).ready(function(){
$("a.switch_thumb").toggle(
function(){
$(this).addClass("swap");
$("ul.display").fadeOut(100, function() {
$(this).fadeIn(100).addClass("thumb_view");
});
setCookie('button_pressed',!$(this).hasClass("swap"));
},
function () {
$(this).removeClass("swap");
$("ul.display").fadeOut(100, function() {
$(this).fadeIn(110).removeClass("thumb_view");
});
setCookie('button_pressed',$(this).hasClass("swap"));
}
);
});
/**
* implementation of setCookie function
* this function creates only session cookie, can be amended so to use expires param
*/
function setCookie(name, value){
document.cookie=name+'='+value;
}