e.onblur   =   function(){myonblur(a1,a2)}; 
function   myonblur(a1,a2) 

      ... 

解决方案 »

  1.   

    <html><body>
    <div id="e"></div></body></html>
    <script language="javascript">document.getElementById("e").onclick   =   aaa(myonblur,"str1","str2"); 
    function   aaa(fun,str1,str2)

    return fun.call(null,str1,str2);
    } function myonblur(str1,str2){
    alert(str1+str2);}
    </script>
      

  2.   

    1楼正确
    javascript的匿名函数就是专门解决参数传递问题的!!!
    e.onblur       =       function(){myonblur(a1,a2)};  //创建一个匿名函数
    function       myonblur(a1,a2)  
    {  
                ...  
    }  
      

  3.   

    使用闭包……e.onblur   =   myonblur(a1,a2); 
    function   myonblur(a1,a2) 

          return function(){
                  ......
          } 
      

  4.   

    正好我写过一篇文章类似
    http://www.se4.cn/article/200711/20001.asp
      

  5.   

    这是对函数理解不到透彻吧...首先我们来看,,e.onblur=myonblur,onblur是事件,实际上也是一个函数,要给它赋值,就只能给它一个引用值,e.onblur=myonblur就是把myonblur函数的引用值(可以理解为myonblur函数定义的地址)赋给了e.onblur;那么如果我们写成e.onblur=myonblur(a1,a2);那么等于在调于myonblur函数,并且把它的返回值赋给e.onblur,结果当然可想而知了...再看如果写成e.onblur=function(){myonblur(a1,a2)};会出现什么样的情况呢,其实就是将一个匿名函数(定义的地址)赋给e.onblur;而这个匿名函数则调用了myonblur(a1,a2);我们知道,函数在定义的时候是不会运行的,所以在给e.onblur赋值的时候也不会有调用myonblur(a1,a2)的问题了