2015-08-05 3 views
3
<input tyoe="button" onclick="toggle()" value="Show Spoilers" /> 
<div id="spoilers" style="display: none;">Some spoilers</div> 
<script> 
function toggle(){ 
    var div = document.getElementById("spoilers"); 
    if(div.style.display = "none"){ 
     div.style.display = "block"; 
    } else { 
     div.style.display = "none"; 
    } 
} 
</script> 

он работал, чтобы показать, но не может скрыть div. Так оно работало только для того, чтобы не показывать его? Любая вещь, я сделал не так? Заранее спасибо.javascript toggle button dont work

ответ

4

Вы забыли равенства (=) в вашем случае

function toggle() 
{ 
    var div = document.getElementById("spoilers"); 
    if(div.style.display === "none"){ 
     div.style.display = "block"; 
    } else { 
     div.style.display = "none"; 
    } 
} 

Пример: http://jsfiddle.net/90Lw12cf/

+0

Спасибо, плохо попробуйте это. Надеюсь, что это сработает. – Bido262

2
function toggle() { 
    var div = document.getElementById('spoilers'); 

    div.style.display = div.style.display === 'none' ? 'block' : 'none'; 
} 
+0

Хотя этот код может решить проблему, нужно также объяснить, как и почему этот код помогает. – BDL

0

Если у вас есть какие-то спойлеры с "s", вы должны использовать класс вместо ID ,

Затем я рекомендую не делать это напрямую с помощью JavaScript, а добавлять класс, скрытый с помощью свойства css display:none.

function toggle(){ 
    var divs = document.getElementsByClassName("spoilers"); 
    for(var i = 0; i > divs.length i++){ 
     if(divs[i].classList.contains("hidden")) { 
      divs[i].classList.remove = "hidden"; 
     } else { 
      divs[i].classList.add = "hidden"; 
     } 
    } 
}