1

我对 onclick 上这些功能之间的区别感到困惑?
哪个更好?如果它们不同,它们意味着什么。

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

任何解释将不胜感激。
如果还有更多,也想知道

4

2 回答 2

2

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

从第一个开始,onclick = "return func()"表示执行函数,如果返回为真则执行点击动作。我的意思是,如果它在链接上并且返回为真,那么浏览器会转到链接,如果不是,那么它只是忽略点击。

第二个和第一个一样。

第三个,onclick = "javascript: func()"意味着只执行函数而不查看返回。它将独立于返回来处理点击动作。在链接上使用它会更改页面,因此它不会让脚本执行...

第 4、5、6 条与第 3 条相同。

第 7 个对执行没有影响,只是让元素正常运行。如果元素是链接,则浏览器会转到链接。

但是,如果您将最后一个更改为return falsethen,您可能已经猜到了,它只会忽略点击。

于 2012-09-18T18:43:12.340 回答
2

return func()和之间没有区别return func();如果分号不存在,则将即时添加分号。显然,其他示例也是如此。

return func()调用func()和返回(“返回”部分有点复杂,但它涉及冒泡,它覆盖了点击的默认行为,我相信。返回true告诉浏览器调用默认行为(例如,转到链接的目标) , 并返回 false 禁用默认行为。我不完全确定如果它返回其他任何东西会做什么。

javascript:func()(几乎)与func()-- 但这是一种过时的方式。不要使用这个。

func()与其他几乎相同,但它可能会导致一些冒泡和默认行为问题。通常,您需要指定return true;return false;

return true doesn't do much of anything. It just tells the browser "do what you were already going to do." Returning false, on the other hand, would disable default behavior.

In conclusion, the first six will basically do the same thing, the seventh will just invoke the default behavior.

于 2012-09-18T18:43:27.677 回答