Почему код jquery перестал работать после того, как в поведение Drupal были добавлены once() и each()?
Была проблема с тем, что часть кода js срабатывала несколько раз, поэтому я добавил один раз() и каждый() (см. комментарии):
(function($, Drupal) {
Drupal.behaviors.collapsedPricing = {
attach: function attach(context) {
$(".pricing .pricing-tabs-contents", context)
.once("collapsedPricing") // added
.each(function() { // added
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-код вообще не работает. И отладка в браузере показывает, что внутрь не заходит:
$(".pricing .pricing-tabs-contents", context)
.once("collapsedPricing")
.each(function() {
Где я сделал ошибку?
Разметка:
<section class="pricing">
<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
разборный блок.