zoukankan      html  css  js  c++  java
  • 用javascript改变onclick调用的函数

    正需要做这个功能,发现不是自己想象中的那样.在网上找了一些资料,终于找到了解决办法.
    首先列出一些错误的方法吧.(这里设obj代表你所要引用的对象.obj = document.getElementById("........");)
           1.obj.οnclick="f_aa()";
           2.obj.οnclick=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('第一次');
                              var click_action2 = alertMsg("第二次了!");
                               document.getElementById("enjoy").onclick = click_action2 ; //不可以.
                          }

                         function alertMsg(t) {
                                return function(){
                                alert(t);
                             }
                         }
                         </script>
                         </head>
                         <body>
                           <a id="enjoy" οnclick="click_action()" href="javascript:void(0);">点我</a>
                         </body>
                         </html>


    我试验成功的方法是:
    1.假如所调用的函数没有参数
              obj.οnclick=f_aa;      //f_aa为一函数名,这里没有左右小括号!
    2.所调用的函数有参数
               obj.οnclick=new Function("f_aa("+i+")");

    另外,把onclick事件置空为(即禁用onclick)
               obj.οnclick=null;

  • 相关阅读:
    作业要求 20181009-9 每周例行报告
    20180925-1 每周例行报告
    作业要求20180925-4 单元测试,结对
    作业要求 20180925-3 效能分析
    作业要求 20180925-6 四则运算试题生成
    20180925-7 规格说明书-吉林市2日游
    20180925-5 代码规范,结对要求
    20170925-2 功能测试
    第二周例行报告
    作业要求 20180918-1 词频统计 卢帝同
  • 原文地址:https://www.cnblogs.com/coder-ahao/p/14225579.html
Copyright © 2011-2022 走看看