javascript 之 事件托付

长处:1、提高性能(仅仅须要对父级进行操作,子节点相同会拥有其相关属性和方法)

2、对于新加入的事件。也让其拥有父级事件的属性

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
//事件托付
//让父级托付(冒泡事件)
//长处:1、提高性能
window.onload=function () {
var oUl=document.getElementById('myUl');
var aLi=document.getElementsByTagName('li');
var oInput=document.getElementById('input1');
var iNow=aLi.length; /*
for (var i = 0; i < aLi.length; i++) {
aLi[i].onmouseover=function () {
this.style.background="red";
}
aLi[i].onmouseout=function () {
this.style.background="";
} };*/ oUl.onmouseover=function () {
//找到操作对象,event,对象;事件源:无论在哪个事件中的那个元素就是事件源
var event=event||window.event;
var target=event.target||event.srcElement; //找元素的标签名NodeName
//alert(target.nodeName)
if(target.nodeName.toLowerCase()=='li'){//仅仅让指定的子节点拥有某些属性
target.style.background="red";
} }
oUl.onmouseout=function () {
//找到操作对象,event,对象;事件源:无论在哪个事件中的那个元素就是事件源
var event=event||window.event;//w3c标准和Ie标准
var target=event.target||event.srcElement;
if(target.nodeName.toLowerCase()=='li'){
target.style.background="";
}
} /* for (var i = 0; i < aLi.length; i++) {
aLi[i].onclick=function(){
alert("123");
}
};*/ /* oUl.onclick=function () {
alert("123");//发生冒泡。!!托付了让ul触发。让父级做托付
}
*/ //事件托付的长处2:新加入的元素,还有之前的事件的属性 oInput.onclick=function () {
iNow++;
var oLi=document.createElement('li');//自身没有事件,可是其父级有。插入新节点后,其父级的事件会影响到当前事件
oLi.innerHTML=1111*iNow;
oUl.appendChild(oLi)
} }
</script>
</head>
<body>
<input type="button" value="加入" id='input1'>
<ul id="myUl">
<li>1111</li>
<li>2222</li>
<li>3333</li>
<li>4444</li>
</ul>
</body>
</html>

javascript --- 事件托付的更多相关文章

  1. JavaScript事件代理和委托(Delegation)

    JavaScript事件代理 首先介绍一下JavaScript的事件代理.事件代理在JS世界中一个非常有用也很有趣的功能.当我们需要对很多元素添加事件的时候,可以通过将事件添加到它们的父节点而将事件委 ...

  2. JavaScript事件概览

    JavaScript事件 JavaScript是单线程,在同一个时间点,不可能同时运行两个"控制线程". 事件句柄和事件对象 1.注册事件句柄 标准和非标准 var button= ...

  3. 【移动端兼容问题研究】javascript事件机制详解(涉及移动兼容)

    前言 这篇博客有点长,如果你是高手请您读一读,能对其中的一些误点提出来,以免我误人子弟,并且帮助我提高 如果你是javascript菜鸟,建议您好好读一读,真的理解下来会有不一样的收获 在下才疏学浅, ...

  4. JavaScript 事件

    事件 概念:事件是可以被 JavaScript 侦测到的行为. JavaScript 使我们有能力创建动态页面.事件是可以被 JavaScript 侦测到的行为. 网页中的每个元素都可以产生某些可以触 ...

  5. JavaScript事件详解-jQuery的事件实现(三)

    正文 本文所涉及到的jQuery版本是3.1.1,可以在压缩包中找到event模块.该篇算是阅读笔记,jQuery代码太长.... Dean Edward的addEvent.js 相对于zepto的e ...

  6. JavaScript事件详解-Zepto的事件实现(二)【新增fastclick阅读笔记】

    正文 作者打字速度实在不咋地,源码部分就用图片代替了,都是截图,本文讲解的Zepto版本是1.2.0,在该版本中的event模块与1.1.6基本一致.此文的fastclick理解上在看过博客园各个大神 ...

  7. 总结JavaScript事件机制

    JavaScript事件模型 在各种浏览器中存在三种事件模型: 原始事件模型 , DOM2事件模型 , IE事件模型. 其中原始的事件模型被所有浏览器所支持,而DOM2中所定义的事件模型目前被除了IE ...

  8. 解析Javascript事件冒泡机制

    本资源引自: 解析Javascript事件冒泡机制 - 我的程序人生 - 博客频道 - CSDN.NET http://blog.csdn.net/luanlouis/article/details/ ...

  9. JavaScript事件流原理解析

    一.为什么会有这一篇的文章 国庆前几天由于任务比较重,要赶在国庆前把一个进度的任务开发完成,所以也就有点赶,但是却遇到了一个比较奇怪的Bug,导致了任务比预计的延迟了几个小时,对此深表遗憾,所以利用国 ...

随机推荐

  1. QTableWidget 导出到csv表格

    跳槽到了新的公司,开始苦逼的出差现场开发,接触到了新的应用.有很多应用需要将Table导出成表格,可以把table导出成csv格式的文件.跟大伙分享一下: lass TableToExcle : pu ...

  2. CairoSVG - Convert SVG to PNG or PDF - Contents

    CairoSVG - Convert SVG to PNG or PDF - Contents User Documentation Author Guillaume Ayoub Date 2011- ...

  3. hdu 5015 大数量反复类似操作问题/ 矩阵高速幂

    题意: 给一个矩阵a,第一行是 0. 233,2333,23333.....第一列读入.列数<10^9.行数<=10. 先转化操作: m是大数量.必定每次向前推一列.就是每次乘一个矩阵T. ...

  4. 它们的定义View

    Ios"巷自己的定义View和Android类别似 在.h文件设置了他的一些财产.方法 在.m文件中实现 .h文件 #import <UIKit/UIKit.h> CGPoint ...

  5. PHP - 图像处理

    第14章 处理图像 学习要点: 1.创建图像 2.简单小案例 在PHP5中,动态图象的处理要比以前容易得多.PHP5在php.ini文件中包含了GD扩展包,只需去掉GD扩展包的相应注释就可以正常使用了 ...

  6. MSSQL - SqlDataReader

    DataReader对象: ·DataReader对象是一个读取行的只读流的方式,绑定数据时比使用数据集方式性能要高,因为他是只读的,所以如果要对数据库中的数据进行修改就需要借助 将所做的修改保存到数 ...

  7. 使用 Spring RestTemplate 调用 rest 服务时自定义请求头(custom HTTP headers)

    在 Spring 3.0 中可以通过  HttpEntity 对象自定义请求头信息,如: private static final String APPLICATION_PDF = "app ...

  8. ibatis通过Map封装参数调用存储过程

    一.存储过程如下(领导写的) CREATE OR REPLACE PROCEDURE agent_UIMOrIMEICheck_pro ( I_CARD_NO IN VARCHAR2, --UIM卡或 ...

  9. IT段子,娱乐一下

    1.我是个程序员,一天我坐在路边一边喝水一边苦苦检查bug.这时一个乞丐在我边上坐下了,开始要饭,我觉得可怜,就给了他1块钱,然后接着调试程序.他可能生意不好,就无聊的看看我在干什么,然后过了一会,他 ...

  10. Qt的setMouseTracking使用

    bool mouseTracking 这个属性保存的是窗口部件跟踪鼠标是否生效. 如果鼠标跟踪失效(默认),当鼠标被移动的时候只有在至少一个鼠标按键被按下时,这个窗口部件才会接收鼠标移动事件. 如果鼠 ...