我点击事件设置如下:
$('.dialogLink')
.click(function () {
dialog(this);
return false;
});
所有人都有“返回假”
有人可以解释这是什么以及是否需要它?
答案 0 :(得分:90)
当您从事件处理程序返回false
时,它会阻止该事件的默认操作,并阻止事件通过DOM冒泡。也就是说,它相当于这样做:
$('.dialogLink')
.click(function (event) {
dialog(this);
event.preventDefault();
event.stopPropagation();
});
如果'.dialogLink'
是<a>
元素,则其对点击的默认操作是导航到href
。从点击处理程序返回false
可以防止这种情况。
至于你的情况是否需要,我猜答案是肯定的,因为你想显示一个对话框以响应点击而不是导航。如果您点击处理程序的元素在点击时没有默认操作(例如,通常在单击div时没有任何反应),那么您不需要返回false,因为没有什么可以取消。
如果你想做点什么来响应点击,但是让默认导航继续,那么就不要返回false。
进一步阅读:
答案 1 :(得分:4)
事件处理程序的返回值确定是否也应该发生默认浏览器行为。在单击链接的情况下,这将在链接之后,但在表单提交处理程序中最明显的区别是,如果用户输入信息时出错,您可以取消表单提交。
我不相信有W3C规范。像这样的所有古老的JavaScript接口都被赋予了昵称“DOM 0”,并且大部分未指定。阅读旧的Netscape 2文档可能会有运气。
实现此效果的现代方法是致电event.preventDefault()
,这在DOM 2 Events specification中指定。
所以正确的方法是:
$('.dialogLink')
.click(function (e) {
dialog(this);
e.preventDefault();
e.stopPropagation(); // Stop bubbling up
});
答案 2 :(得分:-1)
事件处理程序的返回值确定是否也应该发生默认浏览器行为。在单击链接的情况下,这将在链接之后,但在表单提交处理程序中最明显的区别是,如果用户输入信息时出错,您可以取消表单提交。