Проблема переключения Javascript - PullRequest
0 голосов
/ 13 ноября 2010

Это мой сценарий:

window.onload = function (){  
   var title = document.getElementsByTagName('h1')[0].id = "heading1";  
   document.getElementById(title).onclick = function (e){  
          var para = this.nextSibling.style.display = 'block';  
          var newVal = (para == "block") ? "none" : "block";  
          alert(newVal);  
   }  
}  

В результате мне нужно, чтобы значение оповещения переключалось с блока на ноль и обратно. Но я всегда получаю «нет». В чем проблема с моим кодом?

Ответы [ 2 ]

3 голосов
/ 13 ноября 2010
window.onload = function () {
  var firstH1 = document.getElementsByTagName('h1')[0];
  firstH1.id = "heading1";
  firstH1.onclick = function() {
    var currentValue = this.nextSibling.style.display;
    this.nextSibling.style.display = (currentValue == "none") ? "block" : "none";
  }
} 

Обратите внимание на несколько вещей: я упростил выборку вашего элемента, потому что нет смысла извлекать элемент, назначать ему идентификатор, а затем использовать этот идентификатор, чтобы снова найти тот же элемент.

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

2 голосов
/ 13 ноября 2010

Ну, para всегда будет "block", и поэтому newVal всегда будет "none". Так что такое поведение ожидается. Что ты пытаешься сделать? Вы не переключаете собственность со своим текущим кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...