Я использую 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>
Вместо этого (для всех случаев):
onclick="toggle(blue);"
сделай это:
onclick="toggle('+blue+');"
Вот скрипка: http://jsfiddle.net/YF4Nc/1/
0
или 1
вместо blue
переменной. Другой способ решить эту проблему - сделать вашу blue
переменную глобальной, просто удалите перед ней VAR
и не передавайте ее в функцию переключения, и она будет работать. Вот пример: jsfiddle.net/YF4Nc/8 Так как он будет глобальным, независимо от того, где будут отображаться ваши ссылки, у них будет доступ к blue
и это текущее глобальное значение;