javascript - 在 Javascript 中单击子元素时如何覆盖父事件监听器?

标签 javascript jquery overriding

如何覆盖 child.js 中的 aFunction

我想让子事件监听器在没有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');
    });

最佳答案

  • 首先它的 .bar 导致没有名为 bar 的 html 标签
  • > 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>

关于javascript - 在 Javascript 中单击子元素时如何覆盖父事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54661577/

相关文章:

javascript - 使用 Javascript 合并单元格

javascript - 在浏览器中显示 angular 2 装饰器元数据

javascript - select2 背后的 Javascript 功能是什么

java - @Override Apache 枢轴的问题

javascript - 无法在此 Div 之外调用函数

javascript - React/Next.js ,打开对话框后页面滚动卡住

javascript - 当值 = 0 时将 'muted speaker' 图标链接到音量 slider ?

javascript - 滚动出屏幕时更改元素位置

c# - 如何覆盖 ScintillaNet 中的 PASTE 操作?

c++ - 错误 C3662 : override specifier 'new' only allowed on member functions of managed classes