有关JS的一个小问题,请教大神

sliver_blank 2017-04-15 04:19:20
<!DOCTYPE html>
<html>
<head>
<title>事件添加</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="css/3.css" />
<script type="text/javascript">
function fun(){
this.style.backgroundColor="yellow";
alert(this.className);
this.style.backgroundColor="";
}
window.onload=function(){
var divs=document.querySelectorAll("div");
for(var i=0;i<divs.length;i++){
divs[i].addEventListener("click",fun,false);
}
}
</script>
</head>
<body>
<div class="d1">
<div class="d2">
<div class="d3">
</div>
</div>
</div>
</body>
</html>
这段代码里,this.style.backgroundColor="yellow"; 这一句效果出不来,为什么。
...全文
128 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sliver_blank 2017-04-16
  • 打赏
  • 举报
回复
引用 3 楼 jslang 的回复:
浏览器只有在一个程序线程结束后才会重新渲染一次页面。 在 alert()弹出窗口暂停程序线程时有的浏览器(ie)也会重新渲染一次页面。但有的浏览器(Chrome)却不是。
谢谢指教,确实如此,Chrome旧版本好像也可以,现在的版本不行了
天际的海浪 2017-04-15
  • 打赏
  • 举报
回复
浏览器只有在一个程序线程结束后才会重新渲染一次页面。 在 alert()弹出窗口暂停程序线程时有的浏览器(ie)也会重新渲染一次页面。但有的浏览器(Chrome)却不是。
qq_38217785 2017-04-15
  • 打赏
  • 举报
回复
this.style.backgroundColor="yellow";
alert(this.className);
this.style.backgroundColor="";
qq_38217785 2017-04-15
  • 打赏
  • 举报
回复
后面一句话把前面的覆盖了

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧