<!DOCTYPE HTML>
<html>
<body>
<style type="text/css">
#a {background-color:blue;width:100px;height:200px;}
#b {background-color:red;margin-left:25px;width:50px;height:100px;}
</style>
<div id="a">a
<div id="b">b</div>
</div>
<script>
document.getElementById("a").onclick = function() {console.log("A is clicked");}
document.getElementById("b").onclick = function(event) {console.log("B is clicked");event.stopPropagation();}
document.onclick = function() {console.log("Document is clicked");}
</script>
</body>
</html>
问题:
1. function(event)
,event
是形参,什么是实参?实际参数是如何传递给事件的?因为通常我们使用以下样式的参数:
function method(int num){ //num is the formal
/*implementation*/
}
//in main
method(42); //42 is the actual
- 当我在控制台中单击 div a 时,它显示:
A is clicked Document is clicked
我认为结果应该是
A被点击
B被点击
这是我的想法:当单击 div a 时,document.getElementById("a").onclick
被执行,然后document.getElementById("b").onclick
被执行,因为我们有event.stopPropagation();
它会在 div b 中停止,并且不会执行document.onclick
,但它似乎不是这样工作的,谁能帮我理解这里发生了什么?