Как переопределить родительский слушатель события, когда в Javascript нажимается дочерний элемент? - PullRequest
0 голосов
/ 13 февраля 2019

Как мне переопределить aFunction внутри child.js?

Я хочу, чтобы дочерний прослушиватель запускался без aFunction, и я не могу изменить parent.js.

Возможно ли это?

index.html:

       <th class="foo">foo &nbsp;&nbsp;

            <span class="bar" data-feather="arrow-down"></span>

        </th>

parent.js:

       parent = {
            init: function() {
                parent.aFunction($('.foo'));
            },
            aFunction: function(element) {
                element.on('click', function() {
                    alert('foo');
                });
            }, ...

         window.onload = parent.init;

child.js:

    $('.bar').on('click', function() {
      alert('bar');
    });

1 Ответ

0 голосов
/ 13 февраля 2019
  • Сначала его .bar не вызывают html-теги с именем bar
  • event.stopPropagation() Предотвращает всплытие события в дереве DOM, предотвращая появление любого родителяобработчики от уведомления о событии.

Пример

$('.foo').on('click', function() {
  alert('foo');
});
$('.bar').on('click', function(e) {
  e.stopPropagation();
  alert('bar');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="foo">foo &nbsp;&nbsp;
    <span class="bar" data-feather="arrow-down">Bar</span>
</div>
...