none
给js添加事件时,事件怎么带参数? RRS feed

  • 问题

  • 下面这段代码是没有带参数的

     <div id='eleDiv'>
      <input type='button' value='aaa' />
      <input type='button' value='bbb' />
      <input type='button' value='ccc' />
      <a>linkA</a>
      <a>linkB</a>
      <a>linkC</a>
      <a>linkD</a>
     </div>
     <script type="text/javascript">
      function change(){
       this.style.background='#888';
       this.style.color='#369';
      }
      function check(){
       var objdiv=document.getElementById('eleDiv');
       if(objdiv){
        var objas=objdiv.getElementsByTagName('a');
        if(objas.length>0){
         for(var i=0;i<objas.length;i++){
          objas[i].onclick=change;
         }
        }
       }
      }
     </script>
     <input type="button" value='查找子元素' onclick='return check();' />

    但是我想给它添加事件时,带上参数

    就如上面的这句objas[i].onclick=change;我给改成objas[i].onclick=change(this,'parStr');,然后再把那个函数修改一下,但是这样不行,有错,请教各位:如何给它添加一个带参数的事件?

    • 已移动 Sheng Jiang 蒋晟 2010年3月24日 15:30 客户端脚本问题 (发件人:ASP.NET 与 AJAX)
    2010年3月24日 9:15

答案

  • <script type="text/javascript">
      function change(s,t){
       s.style.background='#888';
       s.style.color='#369';
       alert(t);
      }
      function check(){
       var objdiv=document.getElementById('eleDiv');
       if(objdiv){
        var objas=objdiv.getElementsByTagName('a');
        if(objas.length>0){
         for(var i=0;i<objas.length;i++){
          objas[i].onclick=function(){ change(this,"aa")};
         }
        }
       }
      }
     </script>
    • 已标记为答案 NewJoin 2010年3月25日 2:14
    2010年3月24日 10:14

全部回复

  • <script type="text/javascript">
      function change(s,t){
       s.style.background='#888';
       s.style.color='#369';
       alert(t);
      }
      function check(){
       var objdiv=document.getElementById('eleDiv');
       if(objdiv){
        var objas=objdiv.getElementsByTagName('a');
        if(objas.length>0){
         for(var i=0;i<objas.length;i++){
          objas[i].onclick=function(){ change(this,"aa")};
         }
        }
       }
      }
     </script>
    2010年3月24日 10:14
  • <script type="text/javascript">
      function change(s,t){
       s.style.background='#888';
       s.style.color='#369';
       alert(t);
      }
      function check(){
       var objdiv=document.getElementById('eleDiv');
       if(objdiv){
        var objas=objdiv.getElementsByTagName('a');
        if(objas.length>0){
         for(var i=0;i<objas.length;i++){
          objas[i].onclick=function(){ change(this,"aa")};
         }
        }
       }
      }
     </script>
    • 已标记为答案 NewJoin 2010年3月25日 2:14
    2010年3月24日 10:14
  • 太感谢您啦,我都没有想到
    2010年3月25日 2:14