2012-09-18 56 views
0

即時通訊onclick這些功能之間的不同?
哪個更好?以及它們是不同的意思。onclick不同的功能

 onclick = "return func()" 
    onclick = "return func();" 
    onclick = "javascript: func()" 
    onclick = "javascript: func();" 
    onclick = "func()" 
    onclick = "func();" 
    onclick = "return true" 

任何解釋將不勝感激。
如果還有更多,想知道它也

+0

相關,如果不是dupe:http://stackoverflow.com/questions/11655866/why-is-using-javascript-code-bad/11656104#11656104 – zzzzBov

+0

在你的前六個例子中,這些對在功能上等同於第二個只是在最後錯過了一個分號。不是非法的,它會起作用,但以分號結尾是很好的風格。 – j08691

回答

2

return func()return func();之間沒有區別如果分號不存在,分號將被動態添加。其他例子顯然也是如此。

return func()調用func()和返回(「迴歸」部分是有點複雜,但它涉及bubbling和它覆蓋的點擊的默認行爲,我相信。回到true告訴瀏覽器調用默認的行爲(如要鏈接的目標,例如),並返回false禁用默認的行爲,我不完全知道是什麼,如果它返回其他任何東西它會做

javascript:func()(幾乎)一樣func() - 。但它的一個過時的做法,不要用這個,

func()與其他人幾乎相同,但它可能會導致冒泡和默認行爲的一些問題。通常情況下,您需要指定return true;return false;

return true不會做任何事情。它只是告訴瀏覽器「做你已經做的事。」另一方面,返回錯誤會禁用默認行爲。

總之,前六個基本上會做同樣的事情,第七個只會調用默認行爲。

2

其中有些是不同的,但有些是相同的。

從第一個開始,onclick = "return func()"表示執行該函數,如果返回爲true,則執行點擊操作。我的意思是,如果它是在一個鏈接上,並且返回是真的,那麼瀏覽器會轉到鏈接,如果不是,那麼它會忽略點擊。

第二個與第一個相同。

第三個,onclick = "javascript: func()"意味着只是執行該功能,並不看回報。它將處理與回報無關的點擊操作。在鏈接上使用它會更改頁面,因此它不會讓腳本執行...

第4,第5和第6條與第3條相同。

第七屆一個對執行沒有影響,只是讓元素的行爲,因爲它應該正常。如果該元素是那麼的鏈接瀏覽器轉到鏈接..

但是如果你改變了最後一個到return false然後,正如你可能已經猜到的那樣,它只是忽略了點擊。