js阻止事件冒泡的两种方法

本篇文章给大家分享的内容是关于js阻止事件冒泡的两种方法 ,有需要的朋友可以参考一下

一、冒泡事件简介

当我们点击一个控件的时候,如果包括这个控件的父控件也有click事件,则会继续执行。

方法一:event.stopPropagation( );

例如:

    

段落文本内容            

登录后复制

html代码:

// 为所有p元素绑定click事件$("p").click( function(event){    alert("p-click");    } );    //为所有p元素绑定click事件    $("p").click( function(event){        alert("p-click");        } );        //为所有button元素绑定click事件        $(":button").click( function(event){            alert("button-click");                // 阻止事件冒泡到DOM树上                event.stopPropagation();               // 只执行button的click,如果注释掉该行,将执行button、p和p的clic;                 } );

登录后复制

方法二:event.target

现在,事件处理程序中的变量event保存着事件对象。而event.target属性保存着发生事件的目标元素。这个属性是DOM API中规定的,但是没有被所有浏览器实现 。jQuery对这个事件对象进行了必要的扩展,从而在任何浏览器中都能够使用这个属性。通过.target,可以确定DOM中首先接收到事件的元素(即实际被单击的元素)。而且,我们知道this引用的是处理事件的DOM元素,所以可以编写下列代码:

$(document).ready(function(){ $('#switcher').click(function(event){  $('#switcher .button').toggleClass('hidden');  }) })  $(document).ready(function(){ $('#switcher').click(function(event){  if(event.target==this){  $('#switcher .button').toggleClass('hidden');  }  }) })

登录后复制

此时的代码确保了被单击的元素是

 

,而不是其他后代元素。现在,单击按钮不会再折叠样式转换器,而单击边框则会触发折叠操作。但是,单击标签同样什么也不会发生,因为它也是一个后代元素。实际上,我们可以不把检查代码放在这里,而是通过修改按钮的行为来达到目标 。

相关推荐:

js阻止事件追加的具体实现方法

js阻止冒泡和默认事件(默认行为)详解

JS阻止用户多次提交示例代码_javascript技巧

以上就是js阻止事件冒泡的两种方法 的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2774042.html

(0)
上一篇 2025年3月8日 14:01:40
下一篇 2025年3月8日 14:01:48

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JS中各种对象关系

          一张图让你看懂javascript各类型的关系      这个图来自于《JavaScript语言精髓与编程实践》第三章P184页。最近在改第二版,这张图重做了,需要的可以对照着看。   此外,补充一下图中用到的概念:   1、内…

    编程技术 2025年3月8日
    000
  • JS小案例之甩不掉的跟屁虫

    这篇文章主要介绍了js小案例之甩不掉的跟屁虫 ,需要的朋友可以参考下 根本鼠标的XY值,让元素移动 登录后复制      window.onload = function () { var ima = document.getElement…

    编程技术 2025年3月8日
    200
  • 100个常用js函数和语法

    本篇文章给大家分享的内容是100个常用js函数和语法 ,有着一定的参考价值,有需要的朋友可以参考一下 网站特效离不开脚本,javascript是最常用的脚本语言,我们归纳一下常用的基础函数和语法: 1.输出语句:document.write…

    编程技术 2025年3月8日
    200
  • 原生 js 构造函数

    本篇文章给大家分享的内容是关于原生 js 构造函数 ,有着一定的参考价值,有需要的朋友可以参考一下 javascript 是一种基于对象的语言,它包含5中原生数据类型: number(数值类型) boolean(布尔值类型) string(…

    编程技术 2025年3月8日
    200
  • AngularJS中遍历数组

    本篇文章给大家分享的内容是关于AngularJS中遍历数组 ,有着一定的参考价值,有需要的朋友可以参考一下 AngularJS中当我们需要遍历某个数组的时候,我们会用到forEach语法。AngularJS中forEach的用法如下: an…

    编程技术 2025年3月8日
    200
  • angularJs自定义指令

    本篇文章介绍的内容是关于angularjs自定义指令,现在分享给大家,有需要的朋友可以参考一下 1. 定义 对于指令,可以把它简单的理解成在特定DOM元素上运行的函数,指令可以扩展这个元素 的功能。 2.定义指令的方法: 登录后复制登录后复…

    编程技术 2025年3月8日
    200
  • Vue打包优化之code spliting_vue.js

    这篇文章主要介绍了详解vue打包优化之code spliting,现在分享给大家,有需要的朋友参考一下 在http1的时代,比较常见的一种性能优化就是合并http的请求数量,通常我们会把许多js代码合并在一起,但是如果一个js包体积特别大的…

    2025年3月8日 编程技术
    200
  • vue.js中npm安装教程图解

    这篇文章主要介绍了vue.js中npm安装教程图解,现在分享给大家,需要的朋友可以参考下 首先理清nodejs和npm的关系: node.js是javascript的一种运行环境,是对Google V8引擎进行的封装。是一个服务器端的jav…

    2025年3月8日 编程技术
    200
  • React如何避免重渲染_javascript技巧

    这篇文章主要介绍了react如何避免重渲染,现在分享给大家,也可以给有需要的朋友做个参考 组件的重新渲染 我们可以在 React 组件中的 props 和 state 存放任何类型的数据,通过改变 props 和 state,去控制整个组件…

    2025年3月8日 编程技术
    200
  • Pastate.js 之响应式 react state 管理框架

    本篇文章给大家分享的内容是关于pastate.js 之响应式 react state 管理框架 ,有着一定的参考价值,有需要的朋友可以参考一下 Pastate 简介 Pastate 是什么 Pastate 是一个响应式 react stat…

    2025年3月8日 编程技术
    200

发表回复

登录后才能评论