Была проблема с тем, что часть js кода срабатывала несколько раз, поэтому добавил once() и each() (смотри комментарии):
Drupal.behaviors.collapsedPricing = {
attach: function attach(context) {
$(".pricing .pricing-tabs-contents", context)
.once("collapsedPricing") // добавил
.each(function() { // добавил
const pricingTabsContents = $(this);
if (window.innerWidth < 1001) {
$(
".pricing .pricing-tabs-contents .text, .pricing .pricing-tabs-contents .blue-table-container"
).hide();
pricingTabsContents.addClass("collapsed");
}
if (pricingTabsContents) {
$(".pricing .pricing-tabs-contents .tab-content").click(() => {
if (pricingTabsContents.hasClass("collapsed")) {
$(
".pricing .pricing-tabs-contents .text, .pricing .pricing-tabs-contents .blue-table-container"
).hide("slow");
} else {
$(
".pricing .pricing-tabs-contents .text, .pricing .pricing-tabs-contents .blue-table-container"
).show("slow");
}
pricingTabsContents.toggleClass("collapsed");
});
}
});
}
};
})(jQuery, Drupal);
И теперь js код вообще не работает. А дебагинг в браузере показывает что не заходит во внутрь:
.once("collapsedPricing")
.each(function() {
Где я допустил ошибку?
Разметка:
<div class="pricing-tabs-container">
<div class="pricing-tabs-contents collapsed">
<div class="tab-content">
<div class="title">...</div>
<div class="text">...</div>
<div class="blue-table-container">...</div>
</div>
</div>
</div>
</section>
Суть функционала сделать блок .pricing-tabs-contents
collapsible.
Комментарии
Уберите
context
: