我试图创建一个cookie,所以如果:
"切换"一旦雪风暴效果停止并按下并生成一个cookie,如果用户刷新页面,它将无法运行。如果他们" Toggle"它将再次启动暴风雪效果并删除cookie。
目前,我已查看http://www.w3schools.com/js/js_cookies.asp,我需要使用以下功能:
document.cookie="name";
function get_cookie(name){
var x = name;
}
function delete_cookie( name ) {
document.cookie = name;
}
所以我可以使用伪代码:
$("#Snow").click(function () {
snowStorm.toggleSnow()
// Generate a cookie here and returns it //
// Selected again, cookie is deleted //
});
$(document).ready(function(){
$("#Winter").click(function(){
// Gets the cookie and doesn't run the snowStorm.resume
// If no cookie, runs it.
snowStorm.resume()
});
有人可以告诉我一个在点击时创建cookie并再次点击时删除的例子吗?
我不知道该怎么做。我想过使用一个布尔变量并改变更改,当点击X设置为true时,如果再次点击X则设置为false - 然后我可以有一个删除或设置的方法。
答案 0 :(得分:1)
为了方便起见,您可以创建一次并切换其值(而不是存在)来打开/关闭雪。
你可以试试这个:
// this getCookie() function is copied from W3Schools
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
}
return "";
}
// initialization
var on = getCookie("snow");
if(on == "") {
document.cookie = "snow=true";
start();
} else {
(on == "true") ? start() : stop();
}
// toggling
$("#Winter").click(function() {
if(getCookie("snow") == "true") {
stop();
document.cookie = "snow=false"; // overwrite the cookies to change them
} else {
start();
document.cookie = "snow=true";
}
});
请参阅JSFiddle.net上的working example。