<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
<div id="A" style="width:200px; height:200px; background:#cccccc; border:1px solid #f30;">
<p id="B" style="height:20px; background:#06C">HAHAH</p>
</div>
<script language="javascript">
var b=document.getElementById("B");
b.addEventListener("click",msg(b.innerHTML),false)
function msg(a){
alert(a)
}</script>
</body>
</html>问题:为什么页面一加载或者刷新的时候就会弹出,但是点击的时候不会弹出?
b.addEventListener("click",function (){msg(b.innerHTML);},false)
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
<input id="a" type="button" value="点我" />注意执行网页时该按扭并没有事件<br/>
<input id="b" type="button" value="点我绑定事件" onclick="add_Event()" />点击该按扭为上面的按扭绑定事件<script language="javascript">
function add_Event(){
var a = document.getElementById("a");
a.value="点我有事件";
if(document.addEventListener)
a.addEventListener("click",Hello_ok,false);
if(document.attachEvent)
a.attachEvent("onclick",Hello_ok);
}function Hello_ok(){
alert("Hello");
}
</script>
</body>
</html>
那这里的addEventListener又怎么解释呢?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
<input id="a" type="button" value="点我" />注意执行网页时该按扭并没有事件<br/>
<input id="b" type="button" value="点我绑定事件" onclick="add_Event()" />点击该按扭为上面的按扭绑定事件<script language="javascript">
function add_Event(){
var a = document.getElementById("a");
a.value="点我有事件";
if(document.addEventListener)
a.addEventListener("click",Hello_ok,false);
if(document.attachEvent)
a.attachEvent("onclick",Hello_ok);
}function Hello_ok(){
alert("Hello");
}
</script>
</body>
</html>
那这里的addEventListener又怎么解释呢?
Hello_ok 是函数名,是对Hello_ok函数的引用
addEventListener("click",msg(b.innerHTML),false)
msg(b.innerHTML)是执行函数,得到的是函数的执行结果
参数类型都不对,当然不能正常执行了
(1) IE不支持addEventListener的,火狐支持。之所以只弹一次,是因为浏览器屏蔽了错误,你可以设置浏览器为调试状态。
(2) “b.addEventListener("click",msg(b.innerHTML),false)”,第二个参数要么像三面两位兄台那样写死,要么换种写法,在IE的环境下的写法(经过测试)<script language="javascript" >
var b=document.getElementById("B");
b.attachEvent("onclick",msg,false);
function msg()
{
alert(b.innerHTML);
}
</script>
var b=document.getElementById("B");
b.attachEvent("onclick",msg,false);
function msg()
{
alert(b.innerHTML);
}
</script>
return function(){...}
}