如何设置变量来指导替代类

How do I set a variable to direct alternative classes?

本文关键字:变量 何设置 设置      更新时间:2023-09-26

这是对上一个问题的转发。其他问题表述得不够好。我不会删除另一个问题,因为它可能对其他人有用。

大家好,
我有一个javascript/jquery脚本,包含cookie和指导背景图像类的身体标签,通过<body id='body_bg'>。脚本的一小部分,例如:

$('.somebuttons_class').live('click', function(){
  $('#body_bg').removeClass('image10').addClass('image1');
  $.cookie('bg_for_the_day', 'image1', { path: '/', expires: 1 });
});

在这段脚本中,用户显示了一个可选的'image10'到'body_bg',但想把它改回'image1'的默认图像。
这个脚本现在在我的'mypage.html'页面的标题部分。我想把它移到一个外部js页面。

问题是:如您所见,我已经按名称调用了主体的默认类'image1'。但是myotherpage.html的默认类是image2,而yetanother.html的默认类是image3。这意味着我必须将整个脚本复制/过去到'myotherpage.html'并将所有'image1's更改为'image2's。这是很多双重代码,但它会起作用。但是,如所示,我的cookie也返回value='image1'。所以这对我的任何其他页面都不起作用!

问题:我如何设置一个变量说'默认',而不是class='image1'或'image2',在我的javascript?如果页面是"mypage.html",我如何输入脚本将"默认"翻译回"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的知识,这感觉就像进入了下一个阶段;)我提前感谢你的帮助。

编辑:得到答案后,我又试了一次。我没把它修好。我决定做一个简单版本的实际脚本,并张贴在这里。如果你有时间,请去看看。
您可以在这里下载测试页。欢迎大家的帮助!

您的代码看起来像这一行:

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

应该是:

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

这样cookie的值就是你的变量(在你的代码中cookie的值总是"default"