可以执行呀。。
DOM3级的时候,最好不要用匿名函数作为参数。
false:这里表示使用时间冒泡机制 true:这里表示使用事件捕获机制
js代码如果放到body中,可以直接调用,如果放在head中或者外链,就必须通过window.onload事件进行预加载。
为了用这个对象方便呀,不然每次都下面这样写了
document.getElementById("btn2").onclick = function(){}
使用addEventListener()可以添加多个事件(多种事务处理),用removeEventListener()函数删除事件时需要指定事件名称(函数名),用来删除指定的函数(多个函数中的某个),这样才能避免影响其他事务的处理
listener第一个字母L大写 后面的函数不加括号 直接写名字就可以了
showmes函数结尾多了个分号
你的注释符号打错了,btn2.onclick=null;\\取消按钮的作用;应该 //
匿名函数无法被移除
课程中的ie应该是ie8以下的,电脑还是px系统。比较老式的了。
有的浏览器先执行<head>里面的程序,再加载<body>里的内容。如果在script里有对于文档元素的读取,此时body里的文档还没有加载完,也就无法执行<head>中的script代码。
所以<script>代码最好写在<body>的最底部。
DOM0级事件是作为元素属性
IE8以前的浏览器只支持事件冒泡,不支持事件捕获,它也不支持addEventListener函数,不会用第三个参数来表示是冒泡还是捕获,它提供了另一个函数attachEvent。IE9就支持addEventListener(这段是借鉴其他问题别的同学的回答)。
addEventListener()的第三个参数useCapture,这个参数决定要使用的事件处理程序的调用类型,只有在特定狀況下才会对事件产生影响,通常建议用false;
如果参数是true,事件处理程序以捕捉模式触发;从顶层的父节点开始触发事件,从外到内传播。
如果参数是false,事件处理程序以冒泡模式触发;从最内层的节点开始触发事件,逐级冒泡直到顶层节点,从内向外传播。
最后一句showMes和false之间是逗号不是点
他们是顺序执行的在调用的alert时,程序挂起来暂停执行,你点完后,继续执行,随后取消了事件
刚刚我试过了,相同的事件会覆盖,不相同的事件不会覆盖。 <input type="button" value="按钮" id="btn" /> <p id="p1"></p> <script> var btn=document.getElementById("btn"); btn.onclick=function(){ alert("第一个事件"); } btn.onclick=function(){ alert("第二个事件"); } btn.onmouseover=function(){ document.getElementById("p1").innerHTML="第三个事件"; } </script> 点击按钮的时候会弹出“第二个事件”,滑过按钮的时候触发在p标签中添加“第三个事件”
设置里面 有个播放器选项,flash模式下不能调节播放速率,改为html模式就可以调节播放速率了。
就逻辑来说同时申明了两个点击事件方法是不对的,这会使浏览器报错,而且就你的图片来看addEventListener方法是裸露的
用来表示使用事件冒泡处理还是使用事件捕获处理你的事件 false表示冒泡,true表示捕获
你的问题不明确
DOM Ready还没生成,就提前去操作节点,所以无法显示,2L给出了解决办法。看完DOM基础详解篇,就能知道这段代码为什么不能正常显示。
do可能是一个关键字或者保留字,换掉do就好了
DOM0级事件处理:优点:通过javascript制定事件处理程序的传统方式。就是将一个函数赋值给一个事件处理属性。第四代web浏览器出现,至今为所有浏览器所支持。优点,简单且具有跨浏览器的优势。缺点:一个事件处理程序只能对应一个处理函数。
DOM2级事件处理:优点:同时绑定几个事件,不会覆盖。缺点:不具有跨浏览器优势
flase是在冒泡阶段用,考虑到兼容问题,一般使用事件冒泡,flase。
不加括号 加了括号就相当于直接执行该函数了
IE作用域问题
不不不,你认知错了……addEventListener('click',fnName,false)是用的Dom2级事件,他只能支持各种浏览器(不包括IE全系列。)并不支持IE和node?系列。往后看就知道了,IE有IE专门处理各种属性的方法。需要方法判断下,才能全兼容的。可以看下视频2-4,答案就在里面
表示接收的是一个事件类型type,必须要加的