语法错误啦兄弟。if判断的地方以及后面有关于element 的地方都错了。比如if(element.addEventListener)你写成了if(element=addEventListener),element.attachEvent 你写成了element=attachEvent……
在冒泡阶段触发,也就是说该事件会先触发具体元素的事件,再触发他父级的事件,依次直到html
多加了半个括号!
detachEvent是element的一个属性,属性值为一个function,如果浏览器不支持这个属性,那么值就是null或undefined,根据js隐式转换的规则,返回的就是false。这是一种最常见的浏览器能力监测方法。
你是要测试的话,可以用Opera代替的
是呀 还有课件也附上了
addHandler 和 delHandler事件中间加个逗号。另外dom2级处理程序不要加"on"
你的后面的代码写的有bug ,将var btn=document.getElementById('btn');后面的代码
修改为:
function cons(event) {
alert(event.type);
}
eventUtil.addHandler(btn, 'click', cons);
//eventUtil.removeHandler(btn, 'click', cons);
因为你删除句柄的时候要求参数和添加句柄时是一致的,包括第三个参数:函数,所以不能使用匿名函数。将这个函数封装起来就可以了,
它传进去的是click这个事件本身,所以是没有值的,但是你可以把删除句柄的代码注释掉运行一下看这个事件的type.如上。
你用的是什么浏览器打开,attachEvent是老版本IE的东西了,也就是说为了兼容老版本的IE才用的,好像是IE8以下吧
一样的
通过判断浏览器是否支持dom2 来判定浏览器类别 然后采用不同的事件处理方法,支持dom2的就用addelementlistener,不然就用dom0,还不行就用ie的catchevent
1、 eventUitl.addHandler(bt,'click',shouMes);里showMes拼错了;
2、
addHandler:function(element,type,handler){
if(element.addEventListener){
bt.addEventListener(type,handler,false);
}else if(element.attachEvent){
bt.attachEvent('on'+type,handler);
}else{
element['on'+type] = handler ;
}这里要加逗号
3、var eventUitl = {括号不完整
note:
IE11只支持addEventListener!
IE9,IE10对attachEvent和addEventListener都支持!
TE8及以下版本只支持attachEvent!
在head里加一条<meta charset="utf-8">,意思是编码格式为utf-8格式的,这样就不会乱码了
表示IE9也不行
调用函数语句错误!
当然了,而且每段代码判断的内容都不一样,就像现在这段代码就是为了兼容IE才做的判断.等你以后学好基础就能看懂代码了,就可以用框架了,就不用写这么多代码了.但是工作性质就简单来说就变成增删查改了,而且可能比写这么一段代码都费劲.
应该都可以,一开始设置一个值,后面的轮回更改就好了
Sublime text
删除句柄哪个前面没有注释,浏览器以为是JS代码,所以报错,
//删除句柄 这样就好了。
再给你提个建议,每个语句完了加个;号,要不然项目上线一压缩全是错;
Dom0级,同类型事件不能多次添加,比如click事件,只有下面一个有效,Dom2级同类型可以添加多个事件
需要在addEventHandler结束后加逗号,eventUtil是一个包含键值对的对象,每个键值对中间需要加逗号
笔记的框不能放图片,使用截图功能时,需要在要截取的视频页面暂停,然后开启截图,就会截到正在播放的页面了
不对,那样写会报错,那样写也不符合对象字面量声明的语法
这是一个对象,要使用对象的声明方法
我明白了 是if判断的监听事件不能加括号 因为那是判断属性 不是方法
可以看看这个链接加深理解:http://blog.csdn.net/ajaxuser/article/details/5858135
我也很感谢老师,讲得非常通俗易懂,声音也越听越好听