js原生事件委托
来源:互联网 发布:天天特价淘宝商城 编辑:程序博客网 时间:2024/05/22 06:55
1.普通的是事件委托 这里有一个兼容性要注意,var e=e|| window.event;var target = e.target || e.srcElement; 都是为了兼容IE
<body>
<ul id="ul1">
<li>111</li>
<li>222</li>
<li>333</li>
<li>444</li>
</ul>
<script type="text/javascript">
window.onload=function(){
var oUl = document.getElementById("ul1");
oUl.onclick=function(e){
var e=e|| window.event;
var target = e.target || e.srcElement;
if(target.nodeName.toLowerCase() == "li"){
alert(target.innerHTML)
}
}
}
</script>
</body>
2,子元素每个事件都不相同,
<body>
<div id="box">
<input type="button" id="add" value="添加" />
<input type="button" id="remove" value="删除" />
<input type="button" id="move" value="移动" />
<input type="button" id="select" value="选择" />
</div>
</body>
<script type="text/javascript">
var oBox = document.getElementById("box");
oBox.onclick=function(e){
e = e || window.event;
var target = e.target || e.srcElement;
if(target.nodeName.toLowerCase() == 'input'){
switch(target.id){
case 'add':
alert('添加');
break;
case 'remove':
alert('删除');
break;
case 'move':
alert('移动');
break;
case 'select':
alert('选择');
}
}
}
</script>
3.新增子元素如何事件委托
<body>
<input type="button" name="" id="btn" value="添加" />
<ul id="ul1">
<li>111</li>
<li>222</li>
<li>333</li>
<li>444</li>
</ul>
</body>
<script type="text/javascript">
var oBtn = document.getElementById("btn");
var oUl = document.getElementById("ul1");
var aLi = oUl.getElementsByTagName('li');
var num = 4;
//事件委托,添加的子元素也有事件
oUl.onmouseover = function(ev){
var ev = ev || window.event;
var target = ev.target || ev.srcElement;
if(target.nodeName.toLowerCase() == 'li'){
target.style.background = "red";
}
};
oUl.onmouseout = function(ev){
var ev = ev || window.event;
var target = ev.target || ev.srcElement;
if(target.nodeName.toLowerCase() == 'li'){
target.style.background = "#fff";
}
};
oBtn.onclick = function(){
num++;
var oLi = document.createElement('li');
oLi.innerHTML = 111*num;
oUl.appendChild(oLi)
}
</script>
- js原生事件委托
- 原生js事件批量绑定-事件委托
- 对于原生js中的事件委托解析
- 原生js事件委托与简单的jquery事件委托方法
- 原生js中的事件委托(为新添加的DOM元素添加事件)
- 原生js--事件类型
- js原生事件封装
- 原生js--事件类型
- JS自定义事件原生
- 原生JS事件详解
- 原生js onclick事件
- JS模拟事件委托。。。
- JS事件委托
- js 事件委托
- js 事件委托
- 【javascript】js事件委托
- js中的事件委托
- js事件委托
- 坑儿无处不在
- Android源码解析四大组件系列(六)---广播的处理过程
- csu:1967-Election(组合数学)
- 集群Session一致性和同步问题
- 51nod 基础题-1459
- js原生事件委托
- Largest Rectangle in a Histogram POJ2559(单调栈模板)
- Ubuntu Phpstorm搭建Php开发环境
- Android中Activity返回参数
- 机器学习和数据挖掘(7):VC维
- Android Studio3.0以下版本使用Java1.8注意
- Loadrunner12 HP WebTours服务启动失败解方法
- 优先队列的使用方法+OJ案例讲解
- React-native 中遇到的坑