@vaskadogana
Frontend developer

Как проверить e.target элемент на наличие onClick?

Ниже кусок кода, onСlick есть на div "one_of_list" и на button ''show_template"? хочу чтобы onClick по диву не срабатывал при клику по кнопке, в то же время по остальным дочерним элементам дива срабатывал. Думаю решить это через проверку элемента на наличие события по клику на него
<div 	key =		{this.props.index}
						className =	'one_of_list'
						data-id =	{this.props.id}
						style = 	{this.style(this.state.choosed, this.state.expand)}
						onClick = 	{this.clickByTempl}>
						<div className='head_templ'> 
							<p className = 'template_name'>
									{this.state.name}
							</p>	
							<button className = 'show_template'
									style = 	{this.visibility(this.state.choosed)}
									onClick = 	{()=>this.setState({
													expand: !this.state.expand
												})}>
									{template_arrow('arrow_template', this.state.expand)}
							</button>
						</div>	
						<div className = 'option_block'>
							<button className =	'secondary_btn_small'
									onClick =	{()=>{this.props.callGiveTask(this.props.id, this.props.index)}}>
									{language_variant.give_task}
							</button>
  • Вопрос задан
  • 622 просмотра
Решения вопроса 2
0xD34F
@0xD34F Куратор тега React
Не надо ничего проверять, просто отменяйте всплытие события в обработчике клика по кнопке.
Ответ написан
Комментировать
rockon404
@rockon404 Куратор тега React
Frontend Developer
Вызывайте e.stopPropagation по клику по кнопке:
handleButtonClick = e => {
  e.stopPropagation();
  // do something else
};

Это остановит всплытие события.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
RomReed
@RomReed
JavaScript, Flutter, ReactNative, Redux, Firebase
хочу чтобы onClick по диву не срабатывал при клику по кнопке, в то же время по остальным дочерним элементам дива срабатывал

А что вам мешает на диве не прописывать обработчик Onclick а у остальных элементах дива прописать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы