什么时候应该在 jquery 函数中使用 return false ?
我发现了很多这样的函数:
$(function() {
$("body a").click(function() {
alert(this.innerHTML);
return false;
});
});
What's the Difference between this
and $(this)
in jquery?
它们都有一行 return false;
- 我不知道什么时候应该在 jquery 函数中使用 return false
并且不知道它有什么用?
I found lots of functions like this one:
$(function() {
$("body a").click(function() {
alert(this.innerHTML);
return false;
});
});
What's the difference between this
and $(this)
in jquery?
They all have a line return false;
- I don't know when I should use return false
in jquery function and don't know what's the use of it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
根据 jQuery 事件:停止(Mis)使用 Return False(已存档链接),返回
false
在调用时执行三个任务:取消默认行为所需的唯一操作是
preventDefault()
。发出return false;
会创建脆弱的代码。通常你只需要这个:其次“this”是 javascript 中的 DOM 元素,“$(this)”是一个 jQuery 元素
引用 DOM 元素。要了解有关该主题的更多信息,请访问 jQuery 的 this:揭秘。
According to jQuery Events: Stop (Mis)Using Return False (archived link), returning
false
performs three tasks when called:The only action needed to cancel the default behaviour is
preventDefault()
. Issuingreturn false;
can create brittle code. Usually you'd want just this:And secondly "this" is a DOM element in javascript and "$(this)" is a jQuery element
that references the DOM element. Read more on the topic at jQuery's this: demystified.
您单击一个锚点,其默认行为是导航到某个地方。返回 false 可能是试图阻止导航并使用户保持在当前页面/视图上。
You're clicking on an anchor, whose default behavior is to navigate somewhere. Returning false may be an attempt to prevent the navigation and keep user on current page/view.
在点击处理程序的范围内,
this
是未包装的 DOM 元素。$(this)
包装它并返回一个 jQuery 元素。通常的做法是将 this 包装一次并使其在范围内可用that
或通常$this
(在变量名前加上 $ 是表示 jQuery 元素的约定)。因此你的例子可以写成
In the scope of the click handler,
this
is the unwrapped DOM element.$(this)
wraps it and returns a jQuery element. It is common practice to wrap this once and make it available within the scope asthat
, or often$this
(prefixing variable names with $ is a convention to indicate a jQuery element).Your example could therefore be written as