iT邦幫忙

0

事件冒泡傳遞的疑問

  • 分享至 

  • xImage

請問...
在這篇文章:
https://ithelp.ithome.com.tw/articles/10192015

[阻擋事件冒泡傳遞]裡的例子:

<html>
<body>

<label class="lbl">
  myLabel <input type="checkbox" name="chkbox" id="chkbox">
</label>

<script>
var lbl = document.querySelector('.lbl');
var chkbox = document.querySelector('#chkbox');

lbl.addEventListener('click', function (e) {
  console.log(this.tagName + ' lbl click');
}, false);

chkbox.addEventListener('click', function (e) {
  console.log(this.tagName + ' chkbox click');
}, false);

</script>
</body>
</html>


和改成這樣:

<html>
<body>

<div id=prt>
  myLabel <input type="checkbox" name="chkbox" id="ckb">
</div>

<script>
var lbl = document.getElementById('prt');
var chkbox = document.getElementById('ckb');

lbl.addEventListener('click', function (e) {
  console.log(this.tagName + ' lbl click');
}, false);

chkbox.addEventListener('click', function (e) {
  console.log(this.tagName + ' chkbox click');
}, false);

</script>
</body>
</html>


有誰可以說明一下結果為什麼不一樣嗎?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
justintien
iT邦見習生 ‧ 2019-03-11 09:34:32

改成怎樣@@?

1
純真的人
iT邦大師 1 級 ‧ 2019-03-11 09:59:40

因為label跟div性質不一樣的關係
你點label的myLabel會連動input勾選唷
但你點div的myLabel並不會連動input勾選唷

我要發表回答

立即登入回答