snippet.js
Сниппет нужен для написания javascript кода, относящегося к данному виджету.
В сниппете доступна библиотека jquery.
Внутри доступна переменная $widget
в которой лежат все копии данного виджета на странице, поэтому во избежание багов при использовании более одного виджета на странице, их нужно перебирать через метод each
:
$widget.each(function(index, el) {
new LazyLoad({container: $(el).get(0),
elements_selector: '.lazyload'});
});
Можно использовать встроенные события EventBus, подробнее можно ознокомиться здесь
EventBus.subscribe('change_variant:insales:product', function(data) {
let is_product_instance_in_modal_panel = !!$(data.action.product[0]).parents(".modal-product-preview.is-open").length;
if (data.action && data.action.product && data.first_image.url && is_product_instance_in_modal_panel) {
let product_node = $(data.action.product[0]);
product_node.find(".product-preview__photo img").attr("src", data.first_image.medium_url);
}
});
Доступные зависимости (плагины). Зависимости используются только, те которые установлены на стороне платформы:
Можно посмотреть здесь.