【问题标题】:When should I use return false in jquery function?什么时候应该在 jquery 函数中使用 return false?
【发布时间】:2011-08-21 03:00:22
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: javascript jquery callback return-value


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      根据jQuery Events: Stop (Mis)Using 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's this: demystified 阅读有关该主题的更多信息。

      【讨论】:

      【解决方案3】:

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

      因此你的例子可以写成

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

      【讨论】:

        猜你喜欢
        • 2022-01-19
        相关资源
        最近更新 更多