我只有 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/