下面的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>
答案 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()
在下一个事件代码上运行。