jquery - 复杂的jquery语法我看不懂

标签 jquery accordion

我只有 jquery 的基本知识,并且无法理解如何阅读我需要修改的一些代码。希望我没有断章取义,但它包含在 500 行 jquery 代码中。有问题的代码是:

  // Expose in jQuery API
  $.fn.extend({
    collapse: function(options, scan) {
      var nodes = (scan) ? $("body").find("[data-collapse]") : $(this);
      return nodes.each(function() {
        var settings = (scan) ? {} : options,
          values = $(this).attr("data-collapse") || "";
        $.each(values.split(" "), function(i,v) {
          if(v) settings[v] = true;
        });
        new jQueryCollapse($(this), settings);
      });
    }
  });

我对这段代码了解不多。虽然我熟悉使用 ? 的三元语法而且:,我不明白这部分是否完全是别的东西:

var settings = (scan) ? {} : options, values =
$(this).attr("data-collapse") || "";

另外,空大括号是做什么的?我确实查阅了 jquery 语法文档,但没有找到对我来说高级编码的解释。有人能指出我正确的方向吗?

(如果需要更多背景信息,这来自名为 PPM Accordion 的 WordPress Accordion 插件。accordion.js 文件包含上面的代码。我通过在主题标题中插入一个复选框来修改 html折叠,但由于某种原因无法检查复选框。注释掉上面的代码可以恢复复选框,但也可以阻止部分折叠)。

最佳答案

var 值 = a || b;

如果 a == true 则值 = a

其他值 = b

因此,在您的代码中,当该值不为 false 时,变量将设置为数据属性“collapse”的值。如果为 false,它将被设置为空字符串 ("")。

关于jquery - 复杂的jquery语法我看不懂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34701454/

相关文章:

jquery - 如何为 Bootstrap 中的链接设置多个数据切换?

.net - 我需要 WPF 4 的 Accordion 控件

jquery - Bootstrap 框架 - 始终打开至少一个 Accordion (又名折叠)项目

select - mat-select 在 mat-expansion-panel 中不起作用

javascript - 发送表单时向表单插入新元素会导致问题(空数据)

javascript - 循环遍历数组并设置系列对象 jVectormap 的值

javascript - 引用没有 ID 但有 attr 的 elem - 如何?

javascript - 空白不会消失 bootstrap 4

javascript - JSon 和 Jquery Accordion

javascript - 使用 jQuery 隐藏和显示以使用相同的按钮执行?