什么时候应该在 jquery 函数中使用 return false ?

发布于 2024-11-05 22:25:09 字数 360 浏览 1 评论 0原文

我发现了很多这样的函数:

$(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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

想你只要分分秒秒 2024-11-12 22:25:09

根据 jQuery 事件:停止(Mis)使用 Return False(已存档链接),返回 false 在调用时执行三个任务:

  1. event.preventDefault();
  2. event.stopPropagation();
  3. 停止回调执行并在调用时立即返回。

取消默认行为所需的唯一操作是 preventDefault()。发出 return false; 会创建脆弱的代码。通常你只需要这个:

$("a").on( 'click', function (e) {
    // e == our event data
    e.preventDefault();
});

其次“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:

  1. event.preventDefault();
  2. event.stopPropagation();
  3. Stops callback execution and returns immediately when called.

The only action needed to cancel the default behaviour is preventDefault(). Issuing return false; can create brittle code. Usually you'd want just this:

$("a").on( 'click', function (e) {
    // e == our event data
    e.preventDefault();
});

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.

对你再特殊 2024-11-12 22:25:09

您单击一个锚点,其默认行为是导航到某个地方。返回 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.

┈┾☆殇 2024-11-12 22:25:09

在点击处理程序的范围内,this 是未包装的 DOM 元素。 $(this) 包装它并返回一个 jQuery 元素。通常的做法是将 this 包装一次并使其在范围内可用 that 或通常 $this (在变量名前加上 $ 是表示 jQuery 元素的约定)。

因此你的例子可以写成

$(function() {
    $("body a").click(function() {
        var $this = $(this);
        alert($this.html());
        return false;
    });
});

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 as that, or often $this (prefixing variable names with $ is a convention to indicate a jQuery element).

Your example could therefore be written as

$(function() {
    $("body a").click(function() {
        var $this = $(this);
        alert($this.html());
        return false;
    });
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文