作者j100002ben (波卡Poka)
看板Ajax
标题Re: [问题] Javascrip onClick参数
时间Sun May 2 20:10:41 2010
※ 引述《tomin (Schrödinger's cat)》之铭言:
: 我做了一些测试。
: 发现:
: 1.加了括号()後,会在onload就执行,之後就不再执行,原因不明。
: 建议绑定事件时,不要加()。
: 2.用String没有触发eval。
: 结论:
: function无参数时,使用onclick=functionName
: function有参数时,使用onclick=function(){functionName(参数)}
其实,JavaScript的Function也是一种Data Type
所以,如果是onclick=functionName
他的意思就像变数一样,右边的东西给左边的,当然资料(函数)就复制一份过去
如果你写:onclick=functionName()
这个意思是把functionName的运算结果放到onclick里面
当然如果你return的东西是函数那当然OK,不过通常你的functionName不会作这种事
所以你的onclick就会是一个Value(String)或是True/False
而onclick=function(){functionName()}
的意思是产生一个匿名函数指定给onclick
函数内容就是呼叫functionName()
所以这样可以加入你想要加的参数。
用FireBug的HTML和DOM页签可以看到function的对应状态。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.122.165.144
1F:推 tomin:FireBug可看到有()时,onclick=undefined 05/03 11:30
2F:→ tomin: 无()时,onclick=function(){xx()} 05/03 11:32
3F:→ tomin:没对齐到Q_Q 05/03 11:32
4F:推 tomin:也可看到若有return值(true/false等) 会回传给onclick 05/03 11:36
5F:推 tomin:return 函数; 就会是想要的结果:只在onclick执行。 05/03 11:42
6F:→ tomin:我发现我只是重覆你的话 orz 05/03 11:45
7F:推 No:XDDD 05/03 13:28
8F:→ j100002ben:XDDD弄懂就好了啊,之前也想过同样的问题XD 05/03 13:35
9F:→ j100002ben:看完这篇你会发现JavaScript其实也是一个很完整的程式 05/03 13:39
11F:→ j100002ben:进阶一些就去看ECMA-262 05/03 13:43
12F:推 tomin:谢谢 那网页好物耶 而且写好很久了 05/03 16:07