Javascript, если операторы не работают должным образом на HTML-странице - PullRequest
1 голос
/ 11 марта 2011

Пару дней назад я написал скрипт, который будет переключать таблицу стилей 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>

Ответы [ 2 ]

6 голосов
/ 11 марта 2011

Даже если один из первых двух операторов верен, один из последних двух всегда будет выполняться.Измените свои if на else ifs или используйте переключатель.

4 голосов
/ 11 марта 2011

Вы должны использовать Javascript If..Else If..If Statement, как показано ниже: -

if (7 <= currentTime&&currentTime < 17) {
   document.write("<link rel='stylesheet' href='http://itsnotch.com/tumblr/files/vice.css' type='text/css'>");
  }
  else if (17 <= currentTime&&currentTime < 19) {
   document.write("<link rel='stylesheet' href='http://itsnotch.com/tumblr/files/evening.css' type='text/css'>");
  }
  else 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'>");
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...