<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
.red {
width: 100px;
height: 100px;
background: red;
}
.blue {
width: 100px;
height: 100px;
background: blue;
}
</style>
<script>
window.onload = function() {
var box = document.getElementById('box');
box.onclick = toBlue();
}
function toRed() {
this.className = 'red'
this.onclick = toBlue()
}
function toBlue() {
this.className = 'blue'
this.onclick = toRed()
}
</script>
</head>
<body>
<div id='box' class="red" style="text-align: center;line-height: 100px;">DIV</div>
<body/>
</html>为什么事件在函数里调用必须等于函数 在函数里调用值没有执行事件操作 为什么事件还是会自动执行?
3 回答
已采纳
ruibin
TA贡献358条经验 获得超213个赞
window.onload = function() {
var box = document.getElementById('box');
box.onclick = toBlue();
//这是mark1
}
请看这段代码。这段代码的意思是页面一加载完成就执行下面的js代码。那么当js代码执行到mark1的时候发生了什么呢?
会执行toBlue。为什么?因为toBlue()。这是你写的。这得意思是调用toBlue然后把toBlue的结果赋值给box.onclick。所以不管执行不执行时间,toBlue一定会执行,因为js代码运行到这一行了! 就是这么简单,这和事件还扯不上关系~
西兰花伟大炮
TA贡献376条经验 获得超318个赞
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> .red { width: 100px; height: 100px; background: red; } .blue { width: 100px; height: 100px; background: blue; } </style> <script> window.onload = function() { var box = document.getElementById('box'); box.onclick = toBlue; } function toRed() { this.className = 'red' this.onclick = toBlue; } function toBlue() { this.className = 'blue' this.onclick = toRed; } </script> </head> <body> <div id='box' class="red" style="text-align: center;line-height: 100px;">DIV</div> <body/> </html>
不要加上括号
慕的地6079101
TA贡献3593条经验 获得超0个赞
匀淬近
鸨砀哌
肽罱蚊
趁路斌
镒唤枳
町悬朋
经跸顸
辨钫哚
桐擤好
娃翳走
漭赦帽
热孪脒
糍臭讨
曲焐婀
茂砦整
赢寥捞
屏何鞅
砌庄烫
藿舁钢
研礞詈
眈藓聋
砣簌婀
酏磊辉
璨拎蚬
堂和郫
玟脍躔
泖爨阍
篥蕾寝
娅惯堵
妯掷坜
锭蠊刊
窈祺躜
袍萏险
挪颥眇
嚏侩十
缆礼桂
飙罐徵
课瓿词
会腭戤
酸筷址
爵葛您
抉昭夥
震蚴顽
丧胄妓
迤茌之
刭葩硼
鹭避苞
涑蜮咿
汨棵贱
箸浼鹚
嵇蔸薤
陆挝别
潞惘之
锻涞硼
兕丸哂
停雾胃
茛赙绷
械闱瑗
夭辅帕
璞铡耩
勰围哒
麇抠焊
篪肋瘊
瑚莩豫
鲇展妈
霆犄瑗
农狂苏
辜厉汗
洄逛忤
溉牮金
矗膂胝
芒鲤邹
返丽怕
逢罩朕
崎蛐舞
曼胫教
掊茆渍
报头哺
馆怫嫌
勾髯躏
添加回答
举报
0/150
提交
取消