为什么script脚本只能放在button定义下面才可以执行成功?

来源:2-4 IE事件处理程序及跨浏览器解决

慕粉4199666

2016-11-10 10:08

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>

</head>

<body>
<button id="btn1">点这里</button>
<script>
var btn1=document.getElementById("btn1");
var eventUtil={
	addHandler:function(e,type,handler){
		if(e.addEventListener){
			e.addEventListener(type,handler);
			}
		else if(e.attachEvent){
			e.attachEvent('on'+type,handler);
			}
		else{
			e['on'+type]=handler;
			}
		},
	removeHandler:function(e,type,handler){
		if(e.removeEventListener){
			e.removeEventListener(type,handler,false);
			}
		else if(e.detachEvent){
			e.detachEvent('on'+type,handler);
			}
		else{
			e['on'+type]=null;
			}
		}
		}
eventUtil.addHandler(btn1,'click',ceshi);

function ceshi(){alert(123)};

</script>


</body>
</html>
//script脚本必须放在button定义下面,不理解y?


写回答 关注

2回答

  • Xufj
    2016-11-10 10:57:34
    已采纳

    浏览器是从上往下执行的,如果放在button上面的话,浏览器找不到btn1的按钮,所以就不会执行给它添加的事件了

    慕粉4199... 回复慕粉4199...

    刚才测试了下,如果非要加在button前边的话,可以将添加事件写在window.onload函数中就ok了,非常感谢!

    2016-11-10 14:11:48

    共 2 条回复 >

  • W_bobby
    2016-11-10 10:37:38

    浏览器是从上往下执行的。script用于定义脚本,须跟在要修饰的内容的后面。

    慕粉4199...

    刚才测试了下,如果非要加在button前边的话,可以将添加事件写在window.onload函数中就ok了,非常感谢!

    2016-11-10 14:12:19

    共 1 条回复 >

DOM事件探秘

DOM事件?本课程会通过实例来给小伙伴们讲解如何使用这些事件

99545 学习 · 1197 问题

查看课程

相似问题