У меня есть только базовые знания jquery, и у меня возникли проблемы с пониманием того, как читать код, который мне нужно изменить. Надеюсь, я не вытащил его слишком сильно из контекста, но он входит в число 500 строк кода jquery. Код, указанный в тексте:Сложный синтаксис 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, вставив флажок в тему заголовки, которые сворачиваются, но по каким-либо причинам флажки не могут быть проверены. Комментируя вышеописанный код, он восстанавливает флажки, но также останавливает разделение разделов).
Спасибо seahorsepip. Я начинаю это получать, но я все еще боюсь, что мне кажется, что ** var settings = (scan)? {}: опции ** - одна строка кода и ** values = $ (this) .attr ("data-collapse") || "" ** - вторая строка, но почему они разделены запятой? – rtc35
Переменные могут быть установлены на нескольких строках и заканчиваться точкой с запятой (;) или одной строкой (написано на 2 строках, пронумерованной как одна строка) и разделены запятой в javascript. В большинстве случаев я вижу только первый синтаксис, который я предпочитаю и предлагаю сам. – seahorsepip
Еще раз спасибо. Теперь это имеет гораздо больший смысл. И для других, подобных мне, со слабым пониманием jquery, я узнал здесь [https://bytes.com/topic/javascript/answers/817140-variable-initialization-curly-braces](https://bytes. com/topic/javascript/answers/817140-variable-initial-curly-braces), что пустые фигурные скобки инициализируют переменную как новый объект. – rtc35