Дочерний элемент по клику в родительском элементе по клику

У меня есть «чековая книжка» в «теге div», «теге div», который был зарегистрировал событие onclick, когда я нажал на флажок, он вызовет событие «тег div», как просто поймать событие «checkbook», я пробовал «z-index» для checkbok, но не работал

не могли бы вы добавить свой код, чтобы мы могли вам помочь.

Sumit Patel 26.07.2019 06:21

Вам нужно прочитать статью о распространении. Это проблема, которую вы имеете здесь. Вы решаете проблему JavaScript с HTML с помощью z-index. Просто перейдите сюда, и все станет намного понятнее: sitepoint.com/event-bubbling-javascript

misterhtmlcss 26.07.2019 06:25

Я добавил код к моему вопросу :)

newsshare24h 26.07.2019 06:40
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
3
75
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Я добавил код к моему вопросу

<div class = "comment_item">
    <input type = "checkbox" class = "check-item">
</div>

<script>

    $('.comment_item').on('click', ... );

    $('.check-item').on('click', ... ); // it'll call event of comment_item class

</script>

это не вопрос

Nidhin Joseph 26.07.2019 06:39

Попробуйте, это решит вашу проблему, которую я добавил if (e.target !== this).

$('.comment_item').on('click', function(e) {
  if (e.target !== this)
    return;
  
  alert( 'comment_item' );
});

$('.check-item').on('click', function(e) {
  if (e.target !== this)
    return;
  
  alert( 'check-item' );
});
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class = "comment_item">
    <input type = "checkbox" class = "check-item">
</div>

Я попытался использовать метод stopPropagation Нидина Джозефа, и это сработало, спасибо за ответ <3

newsshare24h 26.07.2019 06:55
Ответ принят как подходящий

Вы можете использовать e.stopPropagation();, чтобы остановить всплывающее окно события.

$('.comment_item').on('click', (e) => {
  console.info('.comment_item');
});

$('.check-item').on('click', (e) => {
  e.stopPropagation(); // stops event bubbling
  console.info('.check-item');
});
<script src = "https://code.jquery.com/jquery-3.4.1.min.js" integrity = "sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo = " crossorigin = "anonymous"></script>

<div class = "comment_item">
  <input type = "checkbox" class = "check-item">
</div>

Используйте собственное событие флажка .onchange.

document.querySelector("checkbox").addEventListener("change", function({
  console.info(this.checked)
}, false);

Другие вопросы по теме