第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

OOP 事件冒泡

OOP 事件冒泡

呼啦一陣風(fēng) 2023-05-11 14:44:56
我正在嘗試使用冒泡事件獲取被單擊元素的 ID。  const _elem = new WeakMap();  class GetItem {    constructor(e) {      _elem.set(this, e);    }    eventBubblingTest() {      const targetElement = _elem.get(this).target;      return targetElement.parentNode.id;    }  }  document.getElementById('parent').addEventListener('click', () => {    const clickedID = new GetItem(event);    alert(clickedID);  });目前我正在[object Object]作為輸出。我的問題是為什么我沒有得到被點(diǎn)擊的子元素的 ID?還有沒有更簡單的方法來編寫點(diǎn)擊事件監(jiān)聽器?jsFiddle
查看完整描述

1 回答

?
蝴蝶不菲

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

好吧,在您當(dāng)前的代碼中,您正在提醒整個(gè)班級(您只需創(chuàng)建一個(gè)新實(shí)例GetItem,然后嘗試提醒它)。取而代之的是,如果您想獲得parentNode,id屬性,則需要為其調(diào)用負(fù)責(zé)的函數(shù)。所以你的代碼應(yīng)該是這樣的:


document.getElementById('parent').addEventListener('click', () => {

  const clickedID = new GetItem(event);

  alert(clickedID.eventBubblingTest());

});

工作演示:

const _elem = new WeakMap();

const parent = document.getElementById('parent');


class GetItem {

  constructor(e) {

    _elem.set(this, e);

  }


  eventBubblingTest() {

    const targetElement = _elem.get(this).target;

    return targetElement.parentNode.id;

  }

}


parent.addEventListener('click', () => {

  const clickedID = new GetItem(event);

  console.log(clickedID.eventBubblingTest());

});

#parent {

  border: 1px solid #f00;

  display: flex;

  justify-content: space-evenly;

}


.product {

  min-width: 20%;

  background: #ccc;

  display: flex;

  flex-flow: column wrap;

  align-items: center;

  margin: 5px;

  padding: 8px;

}


img {

  max-width: 75%;

  height: auto;

}

<div id="parent">


  <div class="product" id="col1">

    <img src="https://cdn.freebiesupply.com/logos/large/2x/7up-13-logo-png-transparent.png" />

    <p> Items 1 </p>

    <button id="buyItem1"> Buy </button>

  </div>


  <div class="product" id="col2">

    <img src="https://cdn.freebiesupply.com/logos/large/2x/7up-13-logo-png-transparent.png" />

    <p> Items 2 </p>

    <button id="buyItem2"> Buy </button>

  </div>


  <div class="product" id="col3">

    <img src="https://cdn.freebiesupply.com/logos/large/2x/7up-13-logo-png-transparent.png" />

    <p id="sas"> Items 3 </p>

    <button id="buyItem3"> Buy </button>

  </div>


</div>


查看完整回答
反對 回復(fù) 2023-05-11
  • 1 回答
  • 0 關(guān)注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號