Javascript / Jquery одиночное целевое делегирование события
598 просмотра
2 ответа
Я понял, что избыточность событий в будущем может вызвать много проблем в будущем, когда они связаны с другим событием на следующем уровне.
Например, когда у меня есть элемент Div внутри другого.
<div id='div1'>
<div id='div2>
</div>
</div>
Я использую следующий код Jquery, чтобы связать событие.
$('div').bind('click', function(event){
alert(event.target.id)
}
Есть два окна предупреждения вместо одного. Я понимаю концепцию почему, потому что я нажимаю 2 деления.
Конечно, проблема на более глубоком уровне заключается в том, что когда я пытаюсь связать событие после этого события с помощью event.target, оно связывает x2 и так далее, и так далее.
Можно ли избавиться от привязки события на внешнем div и захватить только внутреннюю.
Заранее спасибо.
Автор: Dennis D Источник Размещён: 13.11.2019 11:51Ответы (2)
3 плюса
Вы можете предотвратить всплытие события, используя event.stopPropgation()
это:
$('div').bind('click', function(event){
alert(event.target.id);
event.stopPropagation();
});
Вы можете попробовать это здесь . Это «заманивает» в ловушку click
первого <div>
получателя, и не позволяет ему распространяться до родителей.
0 плюса
Я думаю, вам просто нужно выбрать внутренний div в вашем вызове bind:
$('div:eq(0)').bind('click', function(event){
alert(event.target.id)
}
Автор: desau
Размещён: 17.08.2010 06:39
Вопросы из категории :
- javascript Как определить, какой из указанных шрифтов был использован на веб-странице?
- javascript Валидация клиентской стороны ASP.Net
- javascript Длина объекта JavaScript
- javascript Получение текста из выпадающего списка
- javascript Скрипт входа со скрытыми кнопками
- javascript Как автоматически изменить размер текстовой области с помощью Prototype?
- jquery Прокрутка переполненных DIV с помощью JavaScript
- jquery Экранирование строк HTML с помощью jQuery
- jquery Как сравнить HTML-сущность с JQuery
- jquery Есть ли функция "существует" для jQuery?
- jquery Как удалить все параметры в окне выбора, а затем добавить один вариант и выбрать его с помощью jQuery?
- jquery Получение идентификатора элемента, который вызвал событие
- events Каковы различия между делегатами и событиями?
- events Вызывать события C # извне класса-владельца?
- events Как мне обработать событие закрытия окна в Tkinter?
- events Зачем использовать EventArgs.Empty вместо null?
- events Event binding on dynamically created elements?
- events Вызывать события C # с помощью метода расширения - это плохо?