Re: [問題] Javascrip onClick參數
※ 引述《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)
討論串 (同標題文章)
完整討論串 (本文為第 8 之 13 篇):
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章