首页 > 编程语言 > 详细

javascript --- 事件托付

时间:2016-01-30 13:49:23      阅读:214      评论:0      收藏:0      [点我收藏+]

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 --- 事件托付

原文:http://www.cnblogs.com/bhlsheji/p/5170850.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!