老师有个问题
function addHandler(element, type, handler){
if (element.addEventListener) {
// 非IE浏览器
element.addEventListener(type, handler, true);
// IE浏览器支持DOM2级
}else if(element.attachEvent){
element.attachEvent("on" + type, handler);
// IE浏览器不支持DOM2级
}else{
element["on" + type] = handler;
}
}
代码中 element["on" + type] = handler; 把它作为DOM0级事件, 但是之前老师讲的是
element["on" + type] = null; 这样, 这样写没把它作为DOM0级事件呀,触发也什么都不会执行呀,为什么不同老师 讲的兼容浏览器的事件写法还不一样呢?
正在回答
element["on"+type]=handler 是在前两种都不兼容的情况下采用DOM0级事件处理,但是呢,在现在浏览器中一般不会执行到element["on"+type]=handler这行代码,因为除了IE浏览器、非IE浏览器,极少会用到小众的浏览器,并且一般小众浏览器的内核与主流的谷歌浏览器等是一样的,因为现在使用的都是主流的浏览器,所以element["on"+type]=null也可以理解成是不执行,但是为了兼容更严谨一些,建议写成element["on"+type]=handler
希望可以帮到你!
同学你好,
① element["on" + type] = handler; 这种写法是把它作为DOM0级事件处理的。
② element["on" + type] = null; 是把null赋值给element["on" + type],所以不会任何事件。
③ 同学方便提供老师之前讲 element["on" + type] = null; 这句代码在哪段视频中出现的吗,方便老师查看这样写的原因是什么呢。
④ 兼容IE和非IE的语法如下哦~
如果还有疑惑,可以在问答区再次提问,我们会继续为你解答的。
如果我的回答帮助了你欢迎采纳,祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星