2 つの異なるテーマ (昼間モードと夜間モードなど) の間で、クリック時に background-image と background-color を循環させたいと考えています。
- この関数は、2 回目のクリックで背景のみを変更します。リンクを最初にクリックしても、背景の CSS は変更されません。
- 循環させたい背景画像/色は2つしかありませんが、2つの間でコードを循環させる方法がわからないため、最終的に壊れる長い配列があります。
コード:
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 + "");
});
});
この機能が 2 回目のクリックでのみ機能する理由を教えてください。
PS: ewb.atworq.com/permagoo/ で実際の動作を確認できます (#theLink は左上隅にあります)。