jquery - 点击外部div触发内部 anchor 的点击事件是无限循环吗?

标签 jquery css

我正在尝试单击外部元素并希望触发子元素的单击事件以查看父子单击事件关系。这是我的代码:-

  <div id="id1">DIV1
    <a href="#" id="id2">DIV2</a>
  </div>
  <script type="text/javascript">
    $(document).off('click', 'a#id2');
    $(document).on('click', 'a#id2', function(){
        alert('div2 clicked');
    });

    $(document).off('click', 'div#id1');
    $(document).on('click', 'div#id1', function(){
        alert($('div#id1').find('a').attr('id'));
        $('div#id1').find('a').trigger('click');
    });
    </script>

但是它正在无限循环中。 你能帮我解决这个问题吗?

提前致谢。

最佳答案

这个无限循环是由于事件冒泡造成的 - 您可以使用event.stopPropagation()停止事件冒泡。

$(document).off('click', 'a#id2');
    $(document).on('click', 'a#id2', function(event){
        alert('div2 clicked');
         event.stopPropagation(); // STOP EVENT BUBBLING
    });

    $(document).off('click', 'div#id1');
    $(document).on('click', 'div#id1', function(event){
        alert($('div#id1').find('a').attr('id'));
        $('div#id1').find('a').trigger('click');
      //  event.stopPropagation();
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="id1">DIV1
    <a href="#" id="id2">DIV2</a>
  </div>

关于jquery - 点击外部div触发内部 anchor 的点击事件是无限循环吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28023552/

相关文章:

javascript - 悬停时弹出,从 Mysql 数据库填写

javascript - 使用 tr :nth-child(n) selector in a jQuery function

javascript - 如何从大型 js 文件中传递单个变量?

javascript - 将 .has() 与 keyup 事件一起使用

html - SVG 宽度超过 div

javascript - 如何在 toggleClass 中使用名称中带有浏览器前缀的 css 样式的 div?

html - 样式不适用于 HTML5 自定义元素

html - 如何对背景图像的特定区域施加模糊效果?

html - :hover class not registering in browser

css - 样式达到最大值的 HTML5 进度标签