加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

jquery父元素和子元素点击事件传递问题_不可把父元素的事件传递

发布时间:2020-12-16 08:56:17 所属栏目:asp.Net 来源:网络整理
导读:前述:jquery中: 当一个元素的点击事件被触发时,会自动将该事件向父级元素逐级专递。 但是实际场景当中,我们可能会遇到需要在父级元素中定义点击事件,来触发特定子元素的点击事件,我就遇到了这么一个问题。? 但是这么做的后果,在jquery1.8.2版本及以后

前述:jquery中: 当一个元素的点击事件被触发时,会自动将该事件向父级元素逐级专递。

但是实际场景当中,我们可能会遇到需要在父级元素中定义点击事件,来触发特定子元素的点击事件,我就遇到了这么一个问题。? 但是这么做的后果,在jquery1.8.2版本及以后所有版本(截止目前最新版本为3.3),会出现事件来回传递的问题,最终导致无限循环。

在jquery1.2.6版本中,子元素的点击传递给父元素时,再被父元素传递回来后,事件就不会再向外扩散了,也就是低级版本jquery只会向外扩散一次,但是在最新版本却取消了这个限制,不知所以然。。。

?

解决方案也很简单:

1-不变更DOM结构的情况下,阻止子元素的事件向外扩散。? 可以使用:window.event.stopPropagation();

2-将需要传递事件的父元素拆分到别处,即不让传递事件之间的两者形成父子元素关系即可。

3-删除事件传递,哪里点击哪里添加。

?

以下还原父子元素点击事件无限传递的示例:

<!DOCTYPE html>
<htmlhead>
    script src="https://code.jquery.com/jquery-3.3.1.min.js"></script<!--<script src="jquery.js"></script>-->
</bodydiv id="a">
        a ="b">Testadiv>

>
    var i = 0;
    $("#a).click(function () {
        $(#b).click();
    });
    $( () {
        i++;
        alert(i);
    });
>

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读