谁能解释下下面这段代码的错误

<!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>


为什么事件在函数里调用必须等于函数 

在函数里调用值没有执行事件操作 为什么事件还是会自动执行?

清风流光
浏览 1576回答 3
3回答

ruibin

 window.onload = function() {                var box = document.getElementById('box');                box.onclick = toBlue();                //这是mark1            } 请看这段代码。这段代码的意思是页面一加载完成就执行下面的js代码。那么当js代码执行到mark1的时候发生了什么呢?会执行toBlue。为什么?因为toBlue()。这是你写的。这得意思是调用toBlue然后把toBlue的结果赋值给box.onclick。所以不管执行不执行时间,toBlue一定会执行,因为js代码运行到这一行了! 就是这么简单,这和事件还扯不上关系~

西兰花伟大炮

<!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>不要加上括号

落叶1111

X.onclick=function(){};是自调用函数

slumdog

最后的body结束标签难道不应该是</body>吗?

慕的地6079101

匀淬近 鸨砀哌 肽罱蚊 趁路斌 镒唤枳 町悬朋 经跸顸 辨钫哚 桐擤好 娃翳走 漭赦帽 热孪脒 糍臭讨 曲焐婀 茂砦整 赢寥捞 屏何鞅 砌庄烫 藿舁钢 研礞詈 眈藓聋 砣簌婀 酏磊辉 璨拎蚬 堂和郫 玟脍躔 泖爨阍 篥蕾寝 娅惯堵 妯掷坜 锭蠊刊 窈祺躜 袍萏险 挪颥眇 嚏侩十 缆礼桂 飙罐徵 课瓿词 会腭戤 酸筷址 爵葛您 抉昭夥 震蚴顽 丧胄妓 迤茌之 刭葩硼 鹭避苞 涑蜮咿 汨棵贱 箸浼鹚 嵇蔸薤 陆挝别 潞惘之 锻涞硼 兕丸哂 停雾胃 茛赙绷 械闱瑗 夭辅帕 璞铡耩 勰围哒 麇抠焊 篪肋瘊 瑚莩豫 鲇展妈 霆犄瑗 农狂苏 辜厉汗 洄逛忤 溉牮金 矗膂胝 芒鲤邹 返丽怕 逢罩朕 崎蛐舞 曼胫教 掊茆渍 报头哺 馆怫嫌 勾髯躏
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript