我对onclick上这些功能之间的差异感到困惑? 哪个更好?如果他们是不同的,他们的意思是什么。
onclick = "return func()"
onclick = "return func();"
onclick = "javascript: func()"
onclick = "javascript: func();"
onclick = "func()"
onclick = "func();"
onclick = "return true"
任何解释都将不胜感激 如果有更多,也想知道它
答案 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会禁用默认行为。
总之,前六个基本上会做同样的事情,第七个只会调用默认行为。