起作用的模式
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>事件流</title> <script src='wrap.js'></script> <script src='event.js'></script> </head> <body> <input type="button" value="按钮" id='mybtn' /> <script type="text/javascript"> var eventFlow={ //创建一个实例 addHander:function(element,type,hander){ //创建一个方法:addEvent用来添加事件 if(element.addEventListener){ element.addEventListener(type,hander,false); }else if(element.attachEvent){ element.attachEvent('on'+type,hander); }else{ element['on'+type]=hander; } } } var mybtn=document.getElementById('mybtn') eventFlow.addHander(mybtn,"click",function() { alert('hello'); }); </script> </body> </html>
不起作用模式
HTML文档
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>事件流</title> <script src='wrap.js'></script> </head> <body> <input type="button" value="按钮" id='mybtn' /> </body> </html>
JS文档
var eventFlow={ //创建一个实例 addHander:function(element,type,hander){ //创建一个方法:addEvent用来添加事件 if(element.addEventListener){ element.addEventListener(type,hander,false); }else if(element.attachEvent){ element.attachEvent('on'+type,hander); }else{ element['on'+type]=hander; } } } var mybtn=document.getElementById('mybtn') eventFlow.addHander(mybtn,"click",function() { alert('hello'); });
当把这些JS代码单独写在文件里引用时却不起作用了,求高人指点
浏览器渲染默认是从上往下顺序进行的,因此第二种外链式引入,先将JS渲染,然后渲染HTML,因此不起作用,由此,可以推知,将JS在HTML后引入可以解决,或者在JS中写上window.onload=function(){}将JS代码放在里面就可以了。