JavaScript 之事件委托方式 两个小例子

JavaScript 之事件委托方式 两个小例子

游戏|数码彩彩2024-04-02 7:47:15260A+A-

例子一 :点击每一个li,显示对应li中数据

<ul id="uls">
	<li>111</li>
	<li>222</li>
	<li>333</li>
	<li>444</li>
</ul>

//jq写法
$("ul li").each(function(){
	$(this).click(function(){		
		console.log($(this).html());
	})
})
//js原始写法
var list=document.getElementById("uls");
var li=list.getElementsByTagName('li');
for(var i=0;i<li.length;i++){
	li[i].onclick=function(){
		console.log(this.innerHTML);
	}
}
//事件委托方式
var list=document.getElementById("uls");
var li=list.getElementsByTagName('li');
list.onclick=function(e){
	var e=e || window.event; //默认事件,兼容ie
	e.target=e.target || e.srcELement; //e.target 当前触发的节点
	if(e.target.nodeName.toLowerCase()=="li") {
		console.log(e.target.innerHTML);
		// console.log(e.target.childNodes[0].nodeValue);
	}
}

例子二 :按钮点击显示/隐藏,当点击其他空白位置的时候,详细内容隐藏

<div >
	<span id="btn" style="border:1px solid red">查看详情</span>
	<p id="info" style="display:none;">信息内容展示</p>
</div>

var info=document.getElementById('info');
document.body.onclick=function(e){
	var e=e || window.event;
	e.target=e.target || e.srcELement;
	if(e.target.id=='btn'){
		if(info.style.display=='none' || info.style.display==''){
			info.style.display='block';
		}else{
			info.style.display='none';
		}
	}else{
		info.style.display='none';
	}
}
点击这里复制本文地址 版权声明:本文内容由网友提供,该文观点仅代表作者本人。本站(https://www.angyang.net.cn)仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

昂扬百科 © All Rights Reserved.  渝ICP备2023000803号-3网赚杂谈