У меня есть родительский делегат, который прослушивает события щелчка в наборе детей с определенным классом.Как вы запрещаете детям распространять событие, вызванное прослушивателем live/delegate?
$(".toggle_group").on("click",".toggle",function(e){ .. });
так Heres пример HTML
<div class='toggle_group'>
<a class='toggle'>click me and i toggle <div>Im a child of toggle</div></a>
<a class='toggle'>click me and i toggle <div>Im a child of toggle</div></a>
<a class='toggle'>click me and i toggle <div>Im a child of toggle</div></a>
<a class='toggle'>click me and i toggle <div>Im a child of toggle</div></a>
</div>
проблема в том, что дети a.toggle
распространение информации о событии родителя запуска обработчика, когда он не должен. Согласно документам jQuery, вы не можете прекратить распространение событий на живых/делегированных прослушивателях событий.
Как запретить этим дочерним элементам a.toggle распространять событие на родителя? или, может быть, в некоторых случаях это разрешает?
Вы видите, что внутренний div .toggle
должен быть выпадающим меню. Он не должен переключаться, когда вы нажимаете меню, только когда вы нажимаете ссылку переключения ...
вы делаете это с .off() на детей – frenchie
так Youre говоря, что дети с наследственными слушателей событий следует использовать, чтобы отключить их? – qodeninja
Да, это один из способов сделать это. StopPropagation - это еще один способ сделать это. Еще один способ сделать это - создать прослушиватель событий для дочернего div с функцией on() и не делать ничего. – frenchie