作者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