这是 a previous question 的重新发布。其他问题的表述不够好。我不会删除其他问题,因为它可能对其他人有用。
大家好,我有一个javascript / jquery脚本,包含cookie并指导background-image-classes身体标签,通过<body id='body_bg'>
。这个脚本的一小部分,例如:
$('.somebuttons_class').live('click', function(){
$('#body_bg').removeClass('image10').addClass('image1');
$.cookie('bg_for_the_day', 'image1', { path: '/', expires: 1 });
});
在这段脚本中,用户正在向'body_bg'显示可选的'image10',但想要将其更改回'image1'的默认图像。
此脚本现在位于我的'mypage.html'页面。我想把它移到外部的js页面。
问题是:
正如你所看到的,我已经通过名称'image1'调用了主体的默认类。但是'myotherpage.html'的默认类是'image2','yetanother.html'的默认类是'image3'。这意味着我必须将整个脚本复制/过去“myotherpage.html”并将所有'image1'更改为'image2'。这是很多dubble代码,但它会工作。但是,如图所示,我的cookie也给了我返回值='image1'。所以我的其他任何页面根本不适用!
问题:如何在我的javascript中设置一个名为'default'的变量,而不是class ='image1'或'image2'?如果页面为'mypage.html',如何输入脚本以将'default'翻译回'image1',如果页面为'myotherpage.html',则使用'image2'?
只是为了给你一个我的意思:
var currentPage = window.location.pathname;
var default;
if(currentPage == "mypage.html"){
default = "image1";
}
if(currentPage == "myotherpage.html"){
default = "image2";
}
然后上一个脚本看起来像这样:
$('.somebuttons_class').live('click', function(){
$('#body_bg').removeClass('image10').addClass('default');
$.cookie('bg_for_the_day', 'default', { path: '/', expires: 1 });
});
我现在已经学到了很多关于javascript的知识,这感觉就像进入了一个新的水平;)我提前感谢你的帮助。
编辑:我得到答案之后再次尝试。我没有让它发挥作用。我决定制作一个简单版本的实际脚本并在此处发布。如果你有空闲时间,请检查一下。
您可以 download the testpage here 。欢迎各方面的帮助!
答案 0 :(得分:0)
除此行外,您的代码看起来还不错:
$.cookie('bg_for_the_day', 'default', { path: '/', expires: 1 });
应该是:
$.cookie('bg_for_the_day', default, { path: '/', expires: 1 });
这样cookie的值就是你的变量(在你的代码中,cookie的值总是“默认”