Неожиданное распространение события клика на одноуровневый элемент, когда родительский элемент "label" содержит дочерниеJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Гость
 Неожиданное распространение события клика на одноуровневый элемент, когда родительский элемент "label" содержит дочерние

Сообщение Гость »


Когда элемент label содержит дочерние элементы button и span (все одноуровневые элементы), неожиданное нажатие на диапазон также приводит к нажатии первой кнопки.
р>
Например, вот метка, которая имеет 2 кнопки и 2 диапазона в качестве прямых дочерних элементов, каждая из которых имеет одно событие щелчка, отображающее предупреждение:

btn1.addEventListener('click', function() { alert('btn1')}) span1.addEventListener('click', function() { alert('span1')}) btn2.addEventListener('click', function() { alert('btn2')}) span2.addEventListener('click', function() { alert('span2')}) Кнопка1 Span1 Кнопка2 Span2

https://jsfiddle.net/uwp8b1o2/

Нажатие на любую кнопку вызывает событие нажатия только этой кнопки (как и ожидалось). Однако:
[*]Нажатие на первый диапазон также запускает событие нажатия первой кнопки. [*]Нажатие на второй диапазон также запускает событие нажатия первой кнопки (но не второй кнопки или другого диапазона) [*]Изменение родительского элемента на «span» или «div» позволяет избавиться от неожиданного поведения — кажется, что это происходит только тогда, когда родительским элементом является метка.
Проверено:
[*]Chrome 116.0.5845.140 [*]Сафари 15.6.1
В онлайн-документации элемента label ничего не говорится о том, что распространение его дочерних событий отличается от распространения других элементов https://www.w3schools.com/jsref/dom_obj_label.asp

Что, черт возьми, происходит?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»