onclick中的不同功能

时间:2012-09-18 18:35:40

标签: html

我对onclick上这些功能之间的差异感到困惑? 哪个更好?如果他们是不同的,他们的意思是什么。

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

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

2 个答案:

答案 0 :(得分:2)

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

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

第二个与第一个相同。

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

第4,第5和第6与第3个相同。

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

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

答案 1 :(得分:2)

return func()return func();之间没有差异如果分号不存在,则会立即添加分号。其他例子也是如此。

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

true(几乎)与javascript:func()相同 - 但这是一种过时的方法。不要使用它。

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

return false;没有做太多事情。它只是告诉浏览器“做你已经做过的事情。”另一方面,返回false会禁用默认行为。

总之,前六个基本上会做同样的事情,第七个只会调用默认行为。