繁体   English   中英

当在Javascript中单击子元素时,如何覆盖父事件侦听器?

[英]How to override a parent event listener when a child element is clicked in Javascript?

如何覆盖aFunction内部的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> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM