Ala*_*an2 56 jquery return jquery-events
我点击事件设置如下:
$('.dialogLink')
.click(function () {
dialog(this);
return false;
});
Run Code Online (Sandbox Code Playgroud)
这一切都有"回归虚假"
有人可以解释这是什么以及是否需要它?
nnn*_*nnn 94
false
从事件处理程序返回时,它会阻止该事件的默认操作,并阻止事件通过DOM冒泡.也就是说,它相当于这样做:
$('.dialogLink')
.click(function (event) {
dialog(this);
event.preventDefault();
event.stopPropagation();
});
Run Code Online (Sandbox Code Playgroud)
如果'.dialogLink'
是一个<a>
元素,则其对click的默认操作是导航到href
.false
从点击处理程序返回可以防止这种情况.
至于你的情况是否需要,我猜答案是肯定的,因为你想显示一个对话框以响应点击而不是导航.如果你打开单击处理程序的元素在单击时没有默认操作(例如,通常在单击div时没有任何反应),那么你不需要返回false,因为没有什么可以取消.
如果你想做点什么来响应点击但是让默认导航继续,那么不要返回false.
进一步阅读:
事件处理程序的返回值决定了是否也应该发生默认浏览器行为。在点击链接的情况下,这将跟随链接,但在表单提交处理程序中差异最为明显,如果用户输入信息有误,您可以取消表单提交。
我不相信有 W3C 规范。像这样的所有古老的 JavaScript 接口都被赋予了“DOM 0”的绰号,而且大多是未指定的。您可能有幸阅读旧的 Netscape 2 文档。
实现这种效果的现代方法是调用event.preventDefault()
,这在DOM 2 事件规范中指定。
所以正确的方法是:
$('.dialogLink')
.click(function (e) {
dialog(this);
e.preventDefault();
e.stopPropagation(); // Stop bubbling up
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
72451 次 |
最近记录: |