我几天前写了一个脚本,它会根据一天中的时间切换我的页面的css样式表。它似乎工作正常,直到我意识到它经过一次脚本后,它就会停止。
例如。当我第一次实现脚本时,它将使用一天的样式表,然后在晚上使用另一个样式表,然后在日落期间使用第三个样式表,最后在晚上使用一次。它会第一次这样做。但是在第4次切换之后,除非我重新实现脚本,否则它不会再次切换。它只停留在切换到脚本底部的样式表上因为我是javascript的新手我不知道为什么要这样做。
我使用相同的javascript函数来控制图片和其他东西,它们似乎完美无缺。这是代码。
<!--CSS Stylesheet Switch Code--->
<script type="text/JavaScript">
<!--
function getStylesheet() {
var currentTime = new Date().getHours();
if (7 <= currentTime && currentTime < 17) {
document.write("<link rel='stylesheet' href='http://itsnotch.com/tumblr/files/vice.css' type='text/css'>");
}
if (17 <= currentTime && currentTime < 19) {
document.write("<link rel='stylesheet' href='http://itsnotch.com/tumblr/files/evening.css' type='text/css'>");
}
if (19 <= currentTime && currentTime < 21) {
document.write("<link rel='stylesheet' href='http://itsnotch.com/tumblr/files/dusk.css' type='text/css'>");
}
else {
document.write("<link rel='stylesheet' href='http://itsnotch.com/tumblr/files/nighttime.css' type='text/css'>");
}
}
getStylesheet();
-->
</script>
答案 0 :(得分:6)
即使前两个语句中的一个是正确的,最后两个语句中的一个将始终执行。将你的ifs更改为else ifs,或使用开关。
答案 1 :(得分:4)
你应该使用Javascript If..Else If..If语句如下: -
if (7 <= currentTime&¤tTime < 17) {
document.write("<link rel='stylesheet' href='http://itsnotch.com/tumblr/files/vice.css' type='text/css'>");
}
else if (17 <= currentTime&¤tTime < 19) {
document.write("<link rel='stylesheet' href='http://itsnotch.com/tumblr/files/evening.css' type='text/css'>");
}
else if (19 <= currentTime&¤tTime < 21) {
document.write("<link rel='stylesheet' href='http://itsnotch.com/tumblr/files/dusk.css' type='text/css'>");
}
else {
document.write("<link rel='stylesheet' href='http://itsnotch.com/tumblr/files/nighttime.css' type='text/css'>");
}