请问这种形式调用函数如何传递参数? e.onblur = function(){myonblur(a1,a2)}; function myonblur(a1,a2) { ... } 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <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> 1楼正确javascript的匿名函数就是专门解决参数传递问题的!!!e.onblur = function(){myonblur(a1,a2)}; //创建一个匿名函数function myonblur(a1,a2) { ... } 使用闭包……e.onblur = myonblur(a1,a2); function myonblur(a1,a2) { return function(){ ...... } } 正好我写过一篇文章类似http://www.se4.cn/article/200711/20001.asp 这是对函数理解不到透彻吧...首先我们来看,,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)的问题了 求一段给gridview内文本框赋值的js 请教如何获取easyui-combobox下拉菜单的多个选中值? 长远的考虑:该不该采用Jquer? 欢迎大家讨论一下 球问getParameter取参数问题 如何取得层的实际宽度而非窗口宽度? 求一段容易的代码.. 画线的问题,高手来支招 在JS中,怎么表示一个CheckBox是否被打上钩了? 满屏显示在我的机子上为什么不行?请指教。 msdn的右边的菜单是如何实现定位的? 求ActiveX,供javaScript调用? 这个,怎么做啊? CSND论坛里鼠标指向发帖人ID显示标签内容使用的是什么方法
<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>
javascript的匿名函数就是专门解决参数传递问题的!!!
e.onblur = function(){myonblur(a1,a2)}; //创建一个匿名函数
function myonblur(a1,a2)
{
...
}
function myonblur(a1,a2)
{
return function(){
......
}
}
http://www.se4.cn/article/200711/20001.asp