Javascript Toggle не работает

0

Я использую Javascript для поиска "# mode2" в URL-адресе, и если да, то он будет создавать другое цветное изображение с холстом. Эта часть скрипта работает нормально. Проблема заключается в скрипте, который создает гиперссылку переключения. Он будет правильно переключаться в первый раз (что имеет смысл в качестве другой части скрипта), а затем будет переключаться один или два раза в зависимости от того, где он начинается.

IE Blue по умолчанию, поэтому, если страница загружается синим цветом, она переключится на оранжевый, а затем обратно на синий, а затем не будет работать, где, как если бы он был оранжевым, он просто переключится на синий, а затем не будет работать.

Я знаю его, вероятно, какую-то глупую ошибку в моем коде, но я не могу найти ее, поэтому, если кто-то может мне помочь, я бы очень ее оценил.

<script type="text/javascript">
function toggle(blue){

if (blue == 0) {
blue = 1;
}
else if (blue == 1) {
blue = 0;
}
if (blue == 0){
var container = document.getElementById("navi");
            var content = '<a href="contact.html#mode1" title="toggle" onclick="toggle(blue);" >toggle colors</a> - <a href="index.html#mode2" title="home">back</a>';
            container.innerHTML= content;
}
else{
var container = document.getElementById("navi");
            var content = '<a href="contact.html#mode2" title="toggle" onclick="toggle(blue);" >toggle colors</a> - <a href="index.html" title="home">back</a>';
            container.innerHTML= content;

}

}

var pathArray = document.URL;
            if (pathArray.indexOf("mode2") != -1){
            var blue = 0;
var container = document.getElementById("navi");
            var content = '<a href="contact.html#mode1" title="toggle" onclick="toggle(blue);" >toggle colors</a> - <a href="index.html#mode2" title="home">back</a>';
            container.innerHTML= content;
}
else{
var blue = 1;
var container = document.getElementById("navi");
            var content = '<a href="contact.html#mode2" title="toggle" onclick="toggle(blue);">toggle colors</a> - <a href="index.html" title="home">back</a>';
            container.innerHTML= content;


}
</script>
  • 0
    Jsfiddle поможет.
  • 0
    Покажите нам свой HTML
Теги:

1 ответ

0
Лучший ответ

Вместо этого (для всех случаев):

onclick="toggle(blue);"

сделай это:

onclick="toggle('+blue+');"

Вот скрипка: http://jsfiddle.net/YF4Nc/1/

  • 0
    это сработало, так что спасибо. Вы можете объяснить, почему это работает?
  • 0
    Обзорная проблема. Я не уверен в размещении всего вашего кода, поэтому я решил его таким способом, который просто передает значение 0 или 1 вместо blue переменной. Другой способ решить эту проблему - сделать вашу blue переменную глобальной, просто удалите перед ней VAR и не передавайте ее в функцию переключения, и она будет работать. Вот пример: jsfiddle.net/YF4Nc/8 Так как он будет глобальным, независимо от того, где будут отображаться ваши ссылки, у них будет доступ к blue и это текущее глобальное значение;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню