您需要在功能的複選框使用e.stopPropagation()
。這將防止從複選框冒泡到父行元素的點擊事件。
class App extends React.Component {
handleCheckClick = (e) => {
console.log('checkbox clicked');
e.stopPropagation();
}
handleRowClick = (e) => {
console.log('row clicked');
}
render() {
return (<table>
<thead>
<tr>
<th>First Name</th>
<th>Last Name</th>
</tr>
</thead>
<tbody>
<tr onClick={this.handleRowClick}>
<td>
<input type="checkbox" onClick={this.handleCheckClick}/>
</td>
<td>Abc</td><td>XYZ</td>
</tr>
</tbody>
</table>)
}
}
ReactDOM.render(<App/>, document.getElementById('app'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.js"></script>
<div id="app"></div>
請提供[MCVE] –
首先提供你的榜樣。其次,很容易防止一個事件的冒泡。但是既然你不顯示你的代碼,我們只能提供你對我們答案的看法。查看@ AllDani.com爲您提供的鏈接 –
我明白你的意思,但這個問題的複雜性只是想找到一種方法將一個指針事件與其父指針事件隔離開來。我認爲這足夠容易理解,但我當然會嘗試改善我未來的問題:) – lax1n