Shopify:section:загрузка прослушивателей событий стекаJavascript

Форум по Javascript
Ответить
Anonymous
 Shopify:section:загрузка прослушивателей событий стека

Сообщение Anonymous »

Я создал раздел в Shopify, в котором JavaScript должен перерисовываться каждый раз, когда пользователь вносит изменения. Одна вещь, которую я не до конца понимаю, это то, что при повторной визуализации JS старые прослушиватели событий складываются с новыми. Вот минимальный пример:

Код: Выделить всё

document.addEventListener( 'DOMContentLoaded', function() {
console.log("Shows in live")

});

if (Shopify.designMode) {
document.addEventListener('shopify:section:load', function(event) {
if (event.detail.sectionId === '{{ section.id }}') {
console.log("Hello World");
}
});
document.addEventListener('shopify:section:unload', function(event) {
if (event.detail.sectionId === '{{ section.id }}') {
console.log("Section unload");
}
});
}

{% schema %}
{
"name": "Table",
"settings": [
{
"type": "collection",
"id": "collection",
"label": "Select Collection"
}
],
"presets": [
{
"name": "Table maple syrup"
}
]
}
{% endschema %}
Когда пользователь вносит изменения, в редакторе тем один раз печатается надпись «Hello World». При внесении еще одного изменения сообщение «Hello World» печатается дважды и т. д.
Это ожидаемое поведение? Что, если я использую карусель, а пользователь вносит 10 разных изменений? Получим ли мы тогда 10 экземпляров карусели в редакторе тем?

Подробнее здесь: https://stackoverflow.com/questions/797 ... -listeners
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»