事件委托2

事件委托

如下为一个事件委托的典型案例,就是给每个input绑定不同的事件。
其基本步骤为

  1. 为div绑定事件
  2. 获取下层元素节点
  3. 判断节点的某一个属性以区分不同节点来安排不同的事件
<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>
<script>
window.onload = function(){
            var oBox = document.getElementById("box");
            oBox.onclick = function (ev) {
                //为上层元素绑定事件
                
                var target = ev.target;
                //获取可以激活事件的所有元素,包括所有的input以及其上层div
                if(target.nodeName.toLocaleLowerCase()  == 'input'){
                    //这个转换小写是必不可少的
                    switch(target.id){
                        //switch的参数是一个变量,这个变量之后会与各种case的值比较。
                        case 'add' :
                            
                            alert('添加');
                            break;
                        case 'remove' :
                            alert('删除');
                            break;
                        case 'move' :
                            alert('移动');
                            break;
                        case 'select' :
                            alert('选择');
                            break;
                    }
                }
            }
            
        }

</script>

注意

  1. case后面是冒号
  2. 获得target之后必须转换为小写
  3. 注意到事件冒泡是在哪一步发挥作用的。

ps

事实上,上述代码有一行是多余的

<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>
<script>
window.onload = function(){
            var oBox = document.getElementById("box");
            oBox.onclick = function (ev) {
                //为上层元素绑定事件
                
                var target = ev.target;
                switch(target.id){
                    case 'add' :
                    
                            
                    alert('添加');
                    break;
                   
                }
            }
            
        }

</script>

参考

JavaScript Switch 语句

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • (续jQuery基础(1)) 第5章 DOM节点的复制与替换 (1)DOM拷贝clone() 克隆节点是DOM的常...
    凛0_0阅读 1,513评论 0 8
  • 链接地址:http://www.cnblogs.com/liugang-vip/p/5616484.htmlhtt...
    青春前行阅读 866评论 0 0
  • * 什么是事件委托 委托,就是让别人帮我们做事。某件事情本身应该由你来做,而你却加到别人身上来完成。事件委托,也叫...
    果汁凉茶丶阅读 1,361评论 0 4
  • 曾几《食笋》原诗、注释、翻译、赏析 【原文】:食笋曾几①花事阑珊竹事初, 一番风味殿春蔬。龙蛇戢戢②风雷后, 虎豹...
    xcy无名阅读 558评论 0 0
  • :“脚步”是个能通灵的东西—— 它栖息在行动与空白之间—— 给有歌词的歌谱曲—— 忽强忽弱,忽慢忽快的节奏—— 在...
    云兮然阅读 318评论 0 0

友情链接更多精彩内容