我只掌握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语法文档,但我没有找到对我看来是高级编码的解释。有人能指出我正确的方向吗?
(如果需要更多的背景信息,这来自WordPress的手风琴插件,名为PPM Accordion。accordion.js文件包含上面的代码。我通过插入一个复选框来修改html崩溃的主题标题,但由于某种原因无法检查复选框。注释掉上面的代码会恢复复选框,但它也会阻止部分折叠)。
答案 0 :(得分:1)
var value = a || B;
value = a if a == true
else value = b
因此,在您的代码中,变量设置为数据属性的值' collapse'当该值不为假时。如果它是假的,它将被设置为一个空字符串("")。