我有一个有嵌套列表的material ui
列表。我想知道是否可以有单独的onClick
处理程序,当有人单击列表项上的任何位置时,以及当他们具体单击展开图标(列表项右侧的倒挂胡萝卜图标)时。
基本上,我希望当他们单击列表项目中除胡萝卜图标之外的任何位置时,都会出现一个默认过程,然后是一个单独的过程,用于尝试展开嵌套列表。
这个是可能的吗?
注意:我使用的是ReactJs
发布于 2018-06-13 12:50:54
您应该在图标单击时使用e.stopPropagation();
来防止事件冒泡到父级:
class App extends React.Component {
parentClick = () => {
console.log('Parent clicked!');
};
iconClick = e => {
e.stopPropagation();
console.log('Icon clicked!');
};
render () {
return (
<div className="item" onClick={this.parentClick}>
<span>Really long text to take up some room in the item.</span>
<span onClick={this.iconClick}>Icon</span>
</div>
)
}
}
ReactDOM.render(<App />, document.getElementById('root'));
.item {
margin-top: 20px;
padding: 15px;
background: #ededed;
display: flex;
justify-content: space-between;
cursor: pointer;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="root"></div>
https://stackoverflow.com/questions/50845963
复制相似问题