Re: [問題] Javascrip onClick參數

看板Ajax作者 (沉默是金。)時間15年前 (2010/05/01 19:37), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串8/13 (看更多)
※ 引述《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)
文章代碼(AID): #1Bt19boc (Ajax)
文章代碼(AID): #1Bt19boc (Ajax)