作者TonyQ (沉默是金。)
看板Ajax
标题Re: [问题] Javascrip onClick参数
时间Sat May 1 19:37:06 2010
※ 引述《tomin (Schrödinger's cat)》之铭言:
: 标题: Re: [问题] Javascrip onClick参数
: 时间: Sat May 1 16:39:12 2010
: 我也有过一样的困扰
:
: 不懂为什麽document.getElementById("btn1").onClick = GetInfo('F123'); 就不行
:
: 加个function後就行了 有些罗嗦
: 本来可以一行的 就要变成三行
: 硬要一行也是可以 但会看不顺眼
: : 建立一个新的匿名方法绑定onclick事件即可。
: : : 这种方式来指定事件处理函数时,可以去设定GetInfo的参数吗?
:
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 140.122.30.140
: 推 No:这样等於呼叫GetInfo('F123')执行,回传值放到onClick去了 05/01 16:40
y 所以上面举的例子其实跟原本的意思相去甚远
: → TonyQ:其实可以啊, 不过要弄成String就是了, 呵 05/01 17:55
: → TonyQ:我是觉得能不倚赖eval就不用罗,匿名函式清楚多了. 05/01 17:55
: → tomin:是呀 常常不需要回传值 还是一定要传个东西回去给onclick 05/01 18:23
: → tomin:也就是return "javascript:alert(1)"之类的? 05/01 18:25
这是因为你误解了。
其实真正的onclick handler没有一定要传回回传值,
要回传也是回传 true/false 决定要不要 bubble上去而已。
: → tomin:记得不能加()耶 onClick=GetInfo; 而不能是=GetInfo() 05/01 18:27
: → tomin:说也奇怪,呼叫时要(),绑定不用。而function可以加()和{} 05/01 18:34
你也说了这两者的差异,有 () 的时候是call function ,也就是执行,
没有的时候则是视为该function 的代号,把该function 指派给onclick。
基本上你只要抓准真正在assign给左边时,
右边到底是什麽东西,就不会有困扰了。
条列如下:
onclick=GetInfo => function ,且没有任何传入值
onclick=GetInfo('F123'); => 不明,要看执行GetInfo後会return什麽东西。
onclick=function(){ => function
GetInfo('F123');
}
--
▄▅▆▇███▇▆▅▄▃ ╰┼╯─╮ ╮
◥███████████◣ ╰┼╯=│=│
◥██████───────◣ *. ╯ ╯ ╯ の 物 语 .*
◥███████──────◣ ~ ◢◣ ◢◣
◥██████───────◤ ◥◤* 空白的世界.翼
*◥◤
◥██▁▂▃▄▅▆▇███▆▅▄▃▂▂
~telnet://tony1223.twbbs.org
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.136.130.84
※ 编辑: TonyQ 来自: 114.136.130.84 (05/01 19:37)
※ 编辑: TonyQ 来自: 114.136.130.84 (05/02 03:25)