警报框显示时元素style.display不会更改

时间:2019-05-20 21:25:00

标签: javascript css

下面的JS函数应该使元素“ shape”在显示警报之前消失,但是首先显示了警报,并且仍然保留“ shape”。控制台日志指示“ shape” style.display设置为“ none”。如何在显示警报之前使“形状”消失?

<script type="text/Javascript">
            var start = new Date().getTime();        
            document.getElementById("shape").onclick = function() {
                document.getElementById("shape").style.display = "none";
                console.log(document.getElementById("shape").style.display);
                var end = new Date().getTime();
                var timeTaken = end - start;
                console.log(timeTaken);
                alert(timeTaken);
            }

        </script>

2 个答案:

答案 0 :(得分:0)

问题是..
这是什么形状如果是画布,则有一个明确的命令,但是如果是图像,则有多种方法可以删除源并“隐藏” img标签。

用于Divs和其他HTML对象(包括仅隐藏整个画布)

var example = document.getElementById("shape");
example.style.display = "none";

如果要使用画布进行绘制(HTML5画布),请擦拭画布

var can = document.getElementById("Shape");
var surface= can.getContext("2d");
surface.clearRect(0, 0, can.width, can.height);

尽管如此,还是不​​清楚您要清除的“形状”是什么,或者如何清除它。

答案 1 :(得分:0)

您需要给浏览器一些时间来重新渲染。在alert()内运行setTimeout()(甚至0ms就足够了),以强制alert()在下一个事件代码上运行。