2015-09-07 3 views
0

Я хотел создать функцию с onclick, где, если я нажму на div, содержимое должно отображаться. Если я нажму на этот контент, он даст мне «начальную» форму.Javascript onclick() show and onclick() hide

Позвольте мне показать вам код:

HTML:

<div id="demo">click</div> 

Javascript:

var div = document.getElementById("demo"); 
var info = "This is the information for the user.";  
var status = true; 

if(status){ 
    div.onclick = function() { div.innerHTML = info }; 
    status=false; 
} 
    else { 
     div.onclick = function() { div.innerHTML = "click" }; 
     status=true; 
    } 

Так что я сделал переменную состояния, которая проверяет, что показано на рисунке. Надеюсь, я смогу выразить себя достаточно хорошо. :)

+2

Так в чем проблема? – NewToJS

+0

Он работает только один раз. Во второй раз, когда я нажимаю на него, ничего не происходит – epgrape

ответ

3

Операция if не собирается волшебным образом запускаться снова. Вам нужно сделать чек внутри клика. Не пытайтесь привязывать отдельные события кликов.

(function() { 
 
    var div = document.getElementById("demo"); 
 
    var info = "This is the information for the user."; 
 
    var status = false; 
 
    div.addEventListener("click", function() { 
 
    status = !status; 
 
    div.innerHTML = status ? info : "click"; 
 
    }); 
 
}());
<div id="demo">click</div>

+0

Даже если я снова нажму на div? То, что я намеревался сделать, это то, что если я нажму на него, это покажет мне «информацию». Когда я снова нажму на него, он должен показать мне «клик». – epgrape

+0

Это то, что должен был сделать мой код выше ... Ваш код не будет связывать события при изменении статуса. Как только код запускается, он выполняется, он не возвращается и снова запускает его. – epascarello

+0

О, отлично, это была моя проблема! Я думал, что это можно сделать снова и снова. Спасибо. :) – epgrape