日期:2014-05-16  浏览次数:20499 次

jk,越兔等热心的朋友有个问题请教一下
<input     type=button     value=test2     id= "aaa ">    
<SCRIPT     srccccc= "css/layout.js "     type=text/javascript>
document.getElementById( "aaa ").onmousedown     =     function(e){foo(e     ||window.event,this)}    
 
function     foo(a,obj)    
{    
 
alert(a.clientX);    
alert(obj.value)    
 
}    
</SCRIPT>    
 
obj.onclick=function(){}    
这个外层function括号里面从来没有用过加过参数,有加参数的例子吗?    
是用来做什么的。    
再就是火狐浏览器下function(e){foo(e||window.event,this)}加了参数,为什么要这样用?谢谢

------解决方案--------------------
第二个问题,参考一下这个,应该能明白了

http://blog.csdn.net/LxcJie/archive/2007/08/10/1736463.aspx
------解决方案--------------------
<body> </body>
<script language= "javascript ">
var btn = document.createElement( 'BUTTON ');
btn.innerText = 'Click Me! ';
btn.onclick = function(v) { return function() { alert(v); } } ( 'abc ');
document.body.appendChild(btn);
</script>
------解决方案--------------------
document.getElementById( "aaa ").onmousedown = function(e){foo(e ||window.event,this)}

如果你这个函数没有传参数的话,在FF下,它会给这个函数传一个event对象作为参数..


所以..用
e || window.event
就可以来获取FF和IE中的event对象..
------解决方案--------------------
e代表事件触发时产生的event,跟IE有点不同,是FF自动带入的,所以你起的名字没有关系