javascript改变onclick调用函数的实例分析

发布时间:2020-07-13编辑:脚本学堂
本文介绍下,在javascript中改变onclick事件调用的函数的方法,分享几个例子,供大家学习参考。

本节内容:
javascript改变onclick调用函数

首先,列出一些错误的方法。
这里设obj代表所要引用的对象.obj = document.getElementById("........");)

例子:
 

复制代码 代码示例:
1,obj.onclick="f_aa()";
2,obj.onclick=f_aa();
3,if(window.attachEvent()){
   obj.attachEvent("onclick",f_aa());//或obj.attachEvent("onclick",function(){f_aa();});
}else{
   obj.addEventListener("click",function(){.........},false);
}
 

4,一种网上叫闭包的方法,但觉得也不管用。
但如果要给第二次的函数传递参数,就需要用到闭包。

例子:
 

复制代码 代码示例:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script type="text/javascript">
    function click_action(){
        alert('第一次'); // www.jb200.com
        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>

成功的解决方法:
1,假如所调用的函数没有参数
 

复制代码 代码示例:
obj.onclick=f_aa; //f_aa为一函数名,这里没有左右小括号!
 

2,所调用的函数有参数
 

复制代码 代码示例:
obj.onclick=new Function("f_aa("+i+")");

另外,把onclick事件置空为(即禁用onclick):
 

复制代码 代码示例:
obj.onclick=null;