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

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

為什么子元素屬性會(huì)傳遞到父 <tr> 元素的 onClick 事件(React)中?

為什么子元素屬性會(huì)傳遞到父 <tr> 元素的 onClick 事件(React)中?

我有一個(gè)有多行的表。每行都有一個(gè) onClick 屬性,該屬性調(diào)用類的 handleClick 方法。每個(gè)都有多個(gè)子元素。所有子元素都沒(méi)有 onClick 屬性,因此它們不應(yīng)觸發(fā) handleClick 方法。這是代碼:...export class EventRow extends Component {    ...    handleClick = (e) => {        e.preventDefault();        console.log(e.target.id);        console.log(e.target.nodeName);    }    ...    render () {        return (            <tr id = { "tr" + this.props.eventdefinition.event_id } className = "noselect" onClick = { this.handleClick.bind(this) }>                <td className = "noselect">{this.props.eventdefinition.event_name}</td>                <td>                <div className = "custom-control custom-checkbox tdDiv noselect">                    <input type="checkbox" className = "custom-control-input" id = { "customCheck" + this.props.eventdefinition.event_id } readOnly checked = {this.props.eventdefinition.recurring} />                    <label className = "custom-control-label" htmlFor = {"customCheck" + this.props.eventdefinition.event_id}></label>                </div>                </td>                <td>                <div className = "custom-control custom-switch tdDiv noselect">                    <input type="checkbox" className = "custom-control-input" id = { "customSwitch" + this.props.eventdefinition.event_id } checked = {this.props.eventdefinition.active_for_generation} onChange = { this.onChange }/>                    <label className = "custom-control-label" htmlFor = {"customSwitch" + this.props.eventdefinition.event_id}></label>                </div>                </td>            </tr>        );    }}...現(xiàn)在您可以看到在handleClick 方法中,有兩個(gè)console.log 語(yǔ)句。當(dāng)我點(diǎn)擊我的行時(shí),我希望在我的控制臺(tái)中我會(huì)得到一個(gè) id 和tr3一個(gè)節(jié)點(diǎn)名稱TR,但是我得到的是也被點(diǎn)擊的任何子項(xiàng)的 id(通常是黑色) ,以及任何子項(xiàng)的節(jié)點(diǎn)名稱也被點(diǎn)擊TD或INPUT或LABEL。我的事件觸發(fā)器發(fā)生了什么?
查看完整描述

2 回答

?
慕森卡

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

JavaScript 中的事件冒泡和事件傳播稱為事件冒泡。請(qǐng)檢查一下。所以發(fā)生的事情是,事件被傳遞給父母,像這樣:

https://img4.sycdn.imooc.com/64e72ac000018e1305250151.jpg

冒泡會(huì)影響直到父級(jí)(即 body)的所有元素。這里有事件目標(biāo),它將包含觸發(fā)該事件的元素。在您的情況下,它可能是單擊的TDINPUTLABEL。

停止冒泡

您可以根據(jù)場(chǎng)景使用以下任一方法來(lái)停止從觸發(fā)元素到上述父元素或子元素的事件傳播:

event.stopPropagation();
event.stopImmediatePropagation();
查看完整回答
反對(duì) 回復(fù) 2023-08-24
?
ABOUTYOU

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

您可以通過(guò)調(diào)用來(lái)防止這種情況event.stopPropagation();,發(fā)生這種情況是因?yàn)閱螕羰录ㄟ^(guò) DOM 樹(shù)傳播,觸發(fā)父元素的單擊事件。



查看完整回答
反對(duì) 回復(fù) 2023-08-24
  • 2 回答
  • 0 關(guān)注
  • 257 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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