Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何停止React中特定元素的onClick事件的执行_Javascript_Reactjs_Material Ui - Fatal编程技术网

Javascript 如何停止React中特定元素的onClick事件的执行

Javascript 如何停止React中特定元素的onClick事件的执行,javascript,reactjs,material-ui,Javascript,Reactjs,Material Ui,我使用的是MaterialUI,我有一个TableRow元素,它有onClick事件。但是现在我必须在表中添加一个复选框。复选框包装在TableCell元素中,该元素是TableRow的一部分。现在,当我单击复选框时,它将触发onClick事件,我不希望发生这种情况。是否有可能以某种方式停止函数的传播!?我可以为该特定单元格禁用onClick吗?如果可以,是否可以单击复选框?或者,如果元素具有某些特定ID(例如,不执行),我应该在函数调用内部执行一些魔术?您可以在复选框单击处理程序中使用e.st

我使用的是MaterialUI,我有一个TableRow元素,它有onClick事件。但是现在我必须在表中添加一个复选框。复选框包装在TableCell元素中,该元素是TableRow的一部分。现在,当我单击复选框时,它将触发onClick事件,我不希望发生这种情况。是否有可能以某种方式停止函数的传播!?我可以为该特定单元格禁用onClick吗?如果可以,是否可以单击复选框?或者,如果元素具有某些特定ID(例如,不执行),我应该在函数调用内部执行一些魔术?

您可以在复选框单击处理程序中使用
e.stopPropagation()
,以便不触发父元素的单击事件

function MyCheckbox() {
  function handleClick(e) {
    e.stopPropagation();
    ....
  }

  return (
    <label>
      <input type="checkbox" onClick={handleClick} />
      Click me
    </label>
  );
}
函数MyCheckbox(){
函数handleClick(e){
e、 停止传播();
....
}
返回(
点击我
);
}

谢谢,这很有帮助。我使用if event.target.id==='something'停止传播:)