在onclick nr 2之后如何让div消失?

时间:2016-01-22 03:34:04

标签: javascript

我试过这个,但是它没有用。我是JS的新手,我该怎么做?

 function test() {
                if(document.getElementById('div1').style.display = 'block'){
                    document.getElementById('div1').style.display = 'none';
                }
                if(document.getElementById('div1').style.display = 'none'){
                    document.getElementById('div1').style.display = 'block';
                }
  }

2 个答案:

答案 0 :(得分:1)

它不应该是public class UnknownUnitException extends Exception{ private String message = null; public UnknownUnitException() { super(); } public UnknownUnitException(String message) { super(message); this.message = message; } public UnknownUnitException(Throwable cause) { super(cause); } @Override public String toString() { return message; } @Override public String getMessage() { return message; } } ,它应该是=条件==if条件总是设置if,所以要么使用style.display = 'block'或仅else if

else

<div id="div1" style="display:block"></div>

function test() {
       if (document.getElementById('div1').style.display == 'block') {
            document.getElementById('div1').style.display = 'none';
        }
        else if(document.getElementById('div1').style.display == 'none') {
            document.getElementById('div1').style.display = 'block';
        }
    }

答案 1 :(得分:1)

您拥有的代码(一旦更正)将切换可见性,但在第二次用户点击时不会使元素不可见。

我已经设置了一个使用纯JavaScript的JSFiddle here,以便在问题标题中执行您所要求的操作。

我们假设您的HTML看起来像这样,DIV的类名称为“tester”:

<div class="tester">This is a triumph.</div>
<p>I'm writing a note here; huge success</p>

实现此目标的一种方法是向DIV添加数据元素以跟踪点击次数,然后,当点击次数达到2时,我们会隐藏它。代码如下:

document.getElementsByClassName("tester")[0].onclick = function(targ) {
    if(!targ.target.hasAttribute("data-click")) {
        targ.target.setAttribute("data-click",0);
    }
    var currClicks = +targ.target.getAttribute("data-click");
    if(currClicks==2){
        targ.target.style.display = "none";
    } else {
        targ.target.setAttribute("data-click", currClicks+1);
    }
};

同样,这将为您提供您在问题中询问的功能但与您的代码示例不匹配,因为它实际上并不是您想要的。如果您需要更多信息,请随时询问,但我认为这将为您提供所需的信息。