События
Общие принципы
На всем жизненном цикле слайдера (открытие-загрузка-закрытие-уничтожение) генерируются события. События посылаются как в родительское окно, так и в iframe. Если слайдер с произвольным содержимым, события генерируются только в родительском окне.
Существует два варианта подписки на события.
- Глобальная подписка.
BX.addCustomEvent("SidePanel.Slider:onOpen", function(event) { console.log(event.getSlider()); //получить объект слайдера });
- На родительской странице данное событие будет генерироваться для всех слайдеров. Для определения конкретного слайдера в обработчике можно использовать метод getUrl() или getData().
- Если обработчик назначен внутри iframe'а, он будет выполнен только в рамках конкретного слайдера.
- Для назначения обработчика используется полное название события.
- Подписка на события конкретного слайдера.
BX.SidePanel.Instance.open("/crm/button/edit/10/", { events: { onLoad: function(event) { console.log("onLoad"); } } });
- Обработчик события выполнится только для указанного слайдера.
- Для назначения обработчика используется короткое название события.
Пример
Пример назначения обработчика в BX.SidePanel.Instance.bindAnchors.
BX.SidePanel.Instance.bindAnchors({ rules: [ { condition: [ "/crm/button/edit/(\d+)/" ], options: { cacheable: false, width: 900, events: { onLoad: function(event) { console.log("onLoad"); } } } } ] });
В первом аргументе обработчики получают объект события типа BX.SidePanel.Event.
BX.addCustomEvent("SidePanel.Slider:onCloseComplete", function(event) { console.log(event.getSlider()); //получить объект слайдера });
© «Битрикс», 2001-2024, «1С-Битрикс», 2024