【发布时间】:2012-09-27 11:21:00
【问题描述】:
我想在两个不同的主题(例如白天模式和夜间模式)之间循环点击背景图像和背景颜色。我正在使用以下代码,它有效,但有两个问题:
- 该功能仅在第二次单击时更改背景。第一次点击链接不会改变背景css。
- 我只有两个要在两个背景图像/颜色之间循环,但我不知道如何使代码在两个之间循环,所以我有一个最终会中断的长数组。
代码:
var allImages = ["bg-clouds.png", "bg-cloudsNight.png", "bg-clouds.png", "bg-cloudsNight.png", "bg-clouds.png"];
var allColors = ["#b7d9ef", "#011157", "#b7d9ef", "#011157", "#b7d9ef"];
$(document).ready(function() {
$("#theLink").click(function() {
var newImageLink = allImages.pop();
var newColor = allColors.pop();
$("body").css("background-image", "url(" + newImageLink + ")");
$("body").css("background-color", "" + newColor + "");
});
});
你能告诉我为什么这个功能只在第二次点击时有效吗?
PS:您可以在 ewb.atworq.com/permagoo/ 上看到它的实际效果(#theLink 在左上角)
【问题讨论】:
-
你不应该依赖那个数组。做一些数学运算,这样您就可以知道单击时要做什么。怎么样:当你改为晚上时设置一个'data-time =“night”。如果您在身体上发现它,请将其取下并切换到白天。
标签: javascript css loops onclick