События редактора
Внимание! Мы настоятельно рекомендуем ознакомиться сначала с REST-документацией модуля Сайты, чтобы понять как модуль функционирует (тем более REST доступен и в коробочной версии). Данную документацию рассматривайте как подспорье при работе в коробке, когда вам действительно мало функционала REST, или вы хотите детальнее разобраться в API.
В редакторе присутствует возможность регистрации обработчиков ряда событий. Это позволит вам более гибко подойти к решению самых разнообразных задач. А в некоторых местах без них не обойтись. Например, блок со слайдером, где каждый слайд – отдельная карточка. После изменения в количестве карточек вам нужно будет скорее всего переинициировать код слайдера (зависит от конкретных библиотек и выходит за рамки данной документации).
Событие | Описание | С версии |
---|---|---|
BX.Landing.Block:init | Вызывает обработчики после инициализации блока | |
BX.Landing.Block:Card:beforeAdd | Вызывает обработчики перед добавлением карточки | |
BX.Landing.Block:Card:add | Вызывает обработчики после добавления карточки | |
BX.Landing.Block:Card:beforeRemove | Вызывает обработчики перед удалением карточки | |
BX.Landing.Block:Card:remove | Вызывает обработчики после удаления карточки | |
BX.Landing.Block:beforeApplyStyleChanges | Вызывает обработчики перед применением стилей из панели дизайна | |
BX.Landing.Block:updateStyleWithoutDebounce | Вызывает обработчики немедленно на каждой итерации, без отсечек | |
BX.Landing.Block:updateStyle | Вызывает обработчики после применения изменений дизайна | |
BX.Landing.Block:remove | Вызывает обработчики в момент когда блок помечен как удаленный, но еще присутствует в DOM | |
BX.Landing.Block:afterRemove | Вызывает обработчики после удаления из DOM | |
BX.Landing.Block:Node:update | Вызывает обработчики после изменения ноды | |
BX.Landing.Block:beforeApplyContentChanges | Вызывает обработчики перед применением изменений контента из панели "редактировать" (после клика на сохранить) | |
BX.Landing.Block:beforeApplyAttributesChanges | Вызывает обработчики перед применением изменений атрибутов | |
BX.Landing.Block:Node:updateAttr | Вызывает обработчики после изменения атрибута |
В обработчики всех событий первым параметром передается объект BX.Landing.Event.Block или null.
Пример
Зарегистрировать свой обработчик можно через метод BX.addCustomEvent. Зарегистрируем обработчик на добавление карточки. Обратите внимание, обработчик будет вызываться при добавлении карточки любого блока, и вам нужно дополнительно контролировать нужные параметры.
BX.addCustomEvent('BX.Landing.Block:Card:add', BX.delegate( function (block) { console.log(block); } ));