2008/03/15 20:21
<a id="enjoy" onclick="click_action()" href="javascript:void(0);">点我</a>
要求第一次执行一个click_action函数,第二次就做其它事了。
在click_action中用document.getElementById("enjoy").onclick = 'alert("2")';,不执行,但也不会
抱错,也不知道到底改了什么。
后来试了很多次,发现只能赋个函数名给它。
function click_action(){
document.getElementById("enjoy").onclick = click_action2;
}
function click_action2() {
alert("第二次了!");
}
这样就OK了。但如果要给第二次的函数传递参数,就需要用到闭包。代码如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script type="text/javascript">
function click_action(){
alert('第一次');
var click_action2 = alertMsg("第二次了!");
document.getElementById("enjoy").onclick = click_action2 ; //不可以.
}
function alertMsg(t) {
return function(){
alert(t);
}
}
</script>
</head>
<body>
<a id="enjoy" onclick="click_action()" href="javascript:void(0);">点我</a>
</body>
</html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script type="text/javascript">
function click_action(){
alert('第一次');
var click_action2 = alertMsg("第二次了!");
document.getElementById("enjoy").onclick = click_action2 ; //不可以.
}
function alertMsg(t) {
return function(){
alert(t);
}
}
</script>
</head>
<body>
<a id="enjoy" onclick="click_action()" href="javascript:void(0);">点我</a>
</body>
</html>
第一次点的时候提示“第一次”,第二次及以后点的时候就提示“第二次了!”。

Google的收录数也会计算错误?
新建代码收藏频道

