当前位置: 首页 > news >正文

网站关键词优化外包服务网络游戏网站开发

网站关键词优化外包服务,网络游戏网站开发,免费ppt模板下载可爱,网站建设工具品牌有哪些事件冒泡和事件捕获分别由微软和网景公司提出#xff0c;这两个概念都是为了解决页面中事件流#xff08;事件发生顺序#xff09;的问题。 div iddiv1div iddiv2div iddiv3click/div/div 这两个概念都是为了解决页面中事件流事件发生顺序的问题。 div iddiv1div iddiv2div iddiv3click/div/div /div如上代码三个div标签呈嵌套关系假使三个元素都注册了相同的事件那么他们的触发顺序是怎样的呢 故此为了解决这个事件流问题微软和网景提出了两种几乎相反的概念。 一、事件冒泡(event bubbling) 微软提出了名为事件冒泡的事件流。事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发。可以想象把一颗石头投入水中泡泡会一直从水底冒出水面。也就是说事件会从最内层的元素开始发生一直向上传播直到document对象。 刚才的例子三个元素间的触发顺序就应该是 div3-div2-div1.我们给上面代码里的三个div元素绑定事件触发一下看看 var div1 document.getElementById(div1);var div2 document.getElementById(div2);var div3 document.getElementById(div3);div1.onclick function () {console.log(this.id);};div2.onclick function () {console.log(this.id);};div3.onclick function (e) {console.log(this.id);};结果如下 这就是事件冒泡。 二、事件捕获(event capturing) 网景提出另一种事件流名为事件捕获。事件从最不精确的对象(document 对象)开始触发然后到最精确(也可以在窗口级别捕获事件不过必须由开发人员特别指定)的对象与事件冒泡相反事件会从最外层开始发生直到最具体的元素。同样形象的比喻一下可以想象成警察逮捕屋子内的小偷就要从外面一层层的进入到房子内。 针对刚才的例子三个元素间的触发顺序应该是div1-div2-div3。 我们给上面代码里的三个div元素绑定事件触发一下看看 var div1 document.getElementById(div1);var div2 document.getElementById(div2);var div3 document.getElementById(div3);div1.addEventListener(click, f1, true);div2.addEventListener(click, f1, true);div3.addEventListener(click, f1, true);function f1(){console.log(this.id)}element.addEventListener(event, function, useCapture)addEventListener方法用来为一个特定的元素绑定一个事件处理函数是JavaScript中的常用方法其传入三个参数分别是‘没有on的事件类型’‘事件处理函数’‘控制事件阶段’第三个参数是boolean类型默认是false表示在事件冒泡的阶段调用事件处理函数像上图中传入true就表示在事件捕获的阶段调用事件处理函数。 结果如下 这就是事件捕获。 三、阻止事件冒泡 ① e.stopPropagation() 先前案例的代码如下 var div1 document.getElementById(div1);var div2 document.getElementById(div2);var div3 document.getElementById(div3);div1.onclick function () {console.log(this.id);};div2.onclick function () {console.log(this.id);};div3.onclick function (e) {console.log(this.id);e.stopPropagation();};结果如下图 ② window.event.cancelBubble true 谷歌IE8兼容火狐不支持 代码如下 var div1 document.getElementById(div1);var div2 document.getElementById(div2);var div3 document.getElementById(div3);div1.onclick function () {console.log(this.id);};div2.onclick function () {console.log(this.id);};div3.onclick function () {console.log(this.id);window.event.cancelBubble true;};③ 合并取消return false 在javascript的return false只会阻止默认行为而是用jQuery的话则既阻止默认行为又防止对象冒泡。 问题为什么会在前端加入冒泡事件这种机制,是出于什么问题才考虑加入这样一种机制 答加入冒泡机制是因为存在这个现象子元素存在于父级元素中点击子元素也是相当于点击了父元素冒泡机制可用于事件委托优化性能比如长列表绑定事件如上所说的长列表绑定笨的做法每个li上绑定事件li触发事件如果1kw条数据这种做法肯定是不科学的。所以优化性能的时候将事件绑定在ul上加入冒泡机制代码量变少、性能又好
http://www.hkea.cn/news/14386127/

相关文章:

  • 乐清柳市网站建设公司网络连接服务
  • 最好的网站设计公腾讯云改wordpress
  • 58同城通辽做网站wordpress弹幕视频插件
  • 网站项目策划书方案帝国cms做招聘网站
  • 南海网站制作公司宁波网络推广咨询
  • 网站建设公司天成培训美工设计师
  • 新网站seo外包家庭做网站
  • 昆明 网站搭建电商网站开发 知乎
  • 网站建设的前端用什么编程自己怎么接单做网站
  • 上海网站建设的asp.net 项目成本预算系统的 网站开发
  • vs2010网站制作教程佛山网站建站
  • 个人网站免费空间网站增值业务
  • 郴州网站建设哪家比较好怎么购买网站空间
  • 网站建设哪家公司最好骏域网络科技有限公司
  • 大连哪里做网站好福建网站建设价格
  • 网站建设分为哪几种无锡网络优化推广公司
  • 为什么网络经营者要有自己的网站网站开发人员结构
  • 免费网站建设无广告网页浏览器插件
  • 手机网站竞价网站关键词修改
  • 网站改版设计费进什么科目wordpress菜单选项如何链接
  • 网站制作.wordpress 广告 插件
  • 学院网站建设新闻简报宝宝个人网站模板
  • 外贸移动端网站模板现在去成都需要隔离吗?
  • 网站建设推广优化话术住建部定调房地产市场
  • dede 网站源码平台推广图片
  • 央企网站群建设排名app
  • 建设网站费用主要包括哪些内容做视频链接的网站
  • 寮步网站建设价钱上海网络
  • 做影视网站需要多大硬盘餐饮品牌策划设计有限公司
  • 如何在阿里云部署网站网站 美化