Я пытаюсь остановить распространение события всех якорей в div, к которому прикреплено событие click, но только функция .click
jquery срабатывает e.stopPropagation();
, а .on('click', 'a', function());
- нет.
Пример кода, который работает, щелчок по якорю не вызывает щелчок по div при нажатии
<div class="clickedDiv" data-url="http://myurl.com">
<a class="clickedA">my link</a>
</div>
<script>
$('.clickedA').click(function(e) {e.stopPropagation();});
$('.clickedDiv').click(function(e) {
var url = $(this).data('url');
window.location.href = url;
});
</script>
Пример кода, который не работает, щелчок по якорю вызывает оба щелчка, сам якорь и div
<div class="clickedDiv" data-url="http://myurl.com">
<a class="clickedA">my link</a>
</div>
<script>
$('.clickedDiv').on('click', 'a', function(e) {e.stopPropagation();});
$('.clickedDiv').click(function(e) {
var url = $(this).data('url');
window.location.href = url;
});
</script>
a
, то ваш делегированный обработчик даже не сработал бы. - person CBroe   schedule 07.11.2017