<input id="Button4" type="button" value="按钮单击" onclick="ddd()" /> <DIV id="zzzz" onclick="gg('123')">div单击</DIV>
function ddd()
{
alert(document.getElementById("zzzz").onclick.toString())
document.getElementById("zzzz").onclick = "gg('456')";
}
function gg(a)
{
alert(a)
}
单击 "div单击",可以触发 gg(a)但当单击 按钮 “按钮单击" 后,“按钮单击" 单击执行 函数 ddd(),改变了 div 的函数头。在单击“按钮单击",
就不触发 函数 gg(a) 了?
}
function gg(a)
{
return function(){
alert(a)
}
}
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<META http-equiv="Content-Style-Type" content="text/css">
<script language="javascript">
function ddd()
{
alert(document.getElementById("zzzz").onclick.toString())
document.getElementById("zzzz").onclick = gg('456');
}
function gg(a)
{
return function(){
alert(a)
}
}
</script>
</head>
<body>
<input id="Button4" type="button" value="按钮单击" onclick="ddd()" NAME="Button4"/> <DIV id="zzzz" onclick=(gg('123'))()>div单击 </DIV>
</body>
</html>
<input id="Button4" type="button" value="按钮单击" onclick="ddd()" /> <DIV id="zzzz" onclick="gg('123')">div单击 </DIV>
<script language="javascript"> function ddd()
{
alert(document.getElementById("zzzz").onclick.toString())
document.getElementById("zzzz").onclick = function(){gg('456');}
}
function gg(a)
{
alert(a)
}
</script>
<DIV id="zzzz" onclick="gg('123')">div单击 </DIV> 页面加载后,对这个div 更改 onclick,例如要达到如下效果 <DIV id="zzzz" onclick="gg('456')">div单击 </DIV>
更改后, div 的 单击事件就不触发了
document.getElementById('zzzz').onclik = gg;
}
这种写法一般不可以传递参数,gg()后面不能加括号,否则会立即执行的
<script language="javascript"> function ddd()
{
alert(document.getElementById("zzzz").onclick.toString())
//document.getElementById("zzzz").onclick = "gg('456')";//这样写是指针指向字符串
//document.getElementById("zzzz").onclick = gg('456');//这样是指向了一个返回值, 你的gg返回void, 那onclick就是undefined了
document.getElementById("zzzz").onclick = Function(" return gg('456')"); //这样就将onclick和一个匿名的function绑定了, 只有这么做是合理的
}
function gg(a)
{
alert(a)
}
</script>