如何设置变量来引导替代类?

时间:2011-07-24 11:03:55

标签: javascript jquery class

这是 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 。欢迎各方面的帮助!

1 个答案:

答案 0 :(得分:0)

除此行外,您的代码看起来还不错:

 $.cookie('bg_for_the_day', 'default', { path: '/', expires: 1 });

应该是:

 $.cookie('bg_for_the_day', default, { path: '/', expires: 1 });

这样cookie的值就是你的变量(在你的代码中,cookie的值总是“默认”