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

IT技术 javascript jquery callback return-value
2021-02-04 07:14:52

我发现了很多这样的功能:

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

jquerythis$(this)jquery 中有什么区别

他们都有一条线return false;——我不知道什么时候应该return false在 jquery 函数中使用,也不知道它有什么用?

3个回答

根据jQuery Events: Stop (Mis)Using Return False (archived link),返回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)”是引用DOM元素的jQuery元素。jQuery 的 this: demystified上阅读有关该主题的更多信息

存档页面作为原始外观没有响应 atm:web.archive.org/web/20160603125641/http : //fuelyourcoding.com/...
2021-03-26 07:14:52

您正在单击一个锚点,其默认行为是导航到某个地方。返回 false 可能是为了阻止导航并使用户保持在当前页面/视图上。

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

因此,您的示例可以写为

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