2010-02-03 23 views
9

是否有任何理由使用的更一個比其他人:內嵌的JavaScript語法事件

<input type="button" value="b1" onclick="manageClick(this)" /> 
<input type="button" value="b2" onclick="manageClick(this);" /> 
<input type="button" value="b2" onclick="manageClick(this);return false;" /> 
<input type="button" value="b3" onclick="return manageClick(this);" /> 
<input type="button" value="b4" onclick="javascript:return manageClick(this);" /> 

請不要花你寶貴的時間來告訴我使用jQuery或attachEvent/addEventListener。這不是我的問題的目標。在那裏你想控制元素的行爲,如<a><input type="submit">

+0

我無法理解的目標你的問題:( – Sarfraz 2010-02-03 09:40:56

+0

我可以告訴你使用'input.onclick = manageClick;'和有'manageClick'看看'this'?這是'attachEvent' /'addEventListener'的簡單形式,當你不需要多個監聽器時。 – bobince 2010-02-03 10:25:15

+0

@bobince。當然你可以;)但是如你所知,我在模板化並且只是在質疑這些「回報」,「;」等是否有用。 – Mic 2010-02-03 11:41:20

回答

8

前兩者之間完全沒有什麼區別,在這個具體的情況下分號是可選的。

第三個將防止發生任何默認操作,前兩個不會發生。

第四個將阻止默認操作,取決於返回值manageClick

第五個錯誤。

(不管走到哪裏合適,使用attachEvent/addEventListener - 鴨和運行

+0

所以javascript:manageClick()是寫它的正確方法嗎?我認爲javascript:已被棄用,並且僅用於非事件屬性。 (編輯評論) – 2010-02-03 09:47:36

+0

+1。但我會改變爲「每當*合適*,使用'attachEvent' /'addEventListener'」,我會問自己,如果它永遠是。 – 2010-02-03 09:47:56

+0

@kb:不,我說「javascript:manageClick」是寫錯的方式。 – 2010-02-03 09:56:15