Не все дочерние элементы запускают обработчик щелчков родительского элемента в Javascript (не предотвращает проблемуDefault) - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть родительский div - .parent - с высотой 300 пикселей и шириной 200 пикселей (не имеет значения).

У меня есть элементы .child1, .child2, .child3 внутри .parent div, у каждого из них есть содержимое и высота / ширина (это просто для простоты, в каждом из них гораздо больше вложений). Все 3 дочерних элемента вместе занимают всю высоту контейнера родителя. (например, каждый ребенок имеет рост 100 пикселей).

У меня есть прослушиватель кликов на .parent div:

 $('.parent').click(function (){
    console.log("Parent div clicked");
 });

Я заметил, что мой обработчик кликов .parent срабатывает только при нажатии на элементе .child3. Когда я нажимаю child1 или child2 - событие не вызывается.

Какие могут быть возможные причины, по которым родительский обработчик щелчков работает только при нажатии .child3 и не работает при нажатии на .child1, .child2?

Я не могу поделиться полным javascript / css этой проблемы, так как есть много ее, связанной с каждым дочерним и родительским элементами. Я просто хотел получить подсказку, где мне искать?

Первоначально я хотел сказать, что с .child1, .child2 связаны некоторые preventDefault/stopPropagation, которые не позволяют сработать клику на родительском элементе. Я не нашел никаких preventDefault, связанных с .child1 или .child2. Также проверено pointer-events тоже.

Что еще может повлиять на это? Z-индекс? позиция: абсолютная?

ОБНОВЛЕНИЕ: Я также добавил обработчик щелчка на документе, чтобы увидеть, какова цель, когда я нажимаю .child1 или .child2. Однако даже это событие не вызывается, когда я нажимаю .child1 или .child2. Это срабатывает, только если я нажимаю .child3 (так же, как для .parent).

$(document).click(function(event) {
  console.log("Document click: " + event);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...