element.[]的问题

element.[]的问题

<!DOCTYPE html>

<html>

<head>

<title>跨浏览器事件处理程序</title>

</head>

<body>

<button id="btn">点击我</button>

<script type="text/javascript">//兼容所有浏览器

//addEventListener,attachEvent

var EventUtil={

addHandler:function(element,type,handler){

if(element.addEventListener){

element.addEventListener(type,handler,false);}

else if(element.attachEvent){

element.attachEvent("on"+type,handler,false);

}else{

element["on"+type]=handler;

}

},

removeHandler:function(element,type,handler){

if(element.removeEventListener){

element.removeEventListener(type,handler,false);}

else if(element.detachEvent){

element.detachEvent("on"+type,handler,false);

}else{

element["on"+type]=null;

}

}

}


var btn=document.getElementById("btn");

var handler=function(){alert("clicked");}

EventUtil.addHandler(btn,"click",handler);

EventUtil.removeHandler(btn,"click",handler);

</script>

</body>

</html> 

http://img1.sycdn.imooc.com//climg/5d8798d609c0bb7f04080064.jpg

老师,图片中为什么可以用中括号的方式这么调用属性,不用应该是elemenet.onclick这样来调用属性的吗

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
慕工程0025061 2019-10-16 08:32:58

如果不写全局函数会怎么样

  • 为了准确的解答同学的疑惑,同学可否举个具体的代码例子呢?
    2019-10-16 09:58:13
樱桃小胖子 2019-09-23 16:04:59

这是因为DOM0级处理事件element.onclick等价于element['onclick'],并且因为事件不只有onclick,还onmouseover等等,所以这里写成了element['on'+type]

希望可以帮到你!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师