Работа с событиями через BX.bind в 1С-Битрикс

Внимание! Работает режим премодерации. Все сообщения публикуются после проверки!
Страницы: 1
Ответить
RSS
Работа с событиями через BX.bind в 1С-Битрикс
Обработка событий в 1С-Битрикс: руководство по BX.bind

В «1С-Битрикс» та же задача решается «платформенным» способом — через BX.bind.  Это даёт единый API, совместимый со старыми браузерами, интегрированный  с остальными утилитами ядра Bitrix и удобный для отладки. Функция  подключена во всех шаблонах ядра, поэтому никакие дополнительные файлы  включать не нужно.
Изменено: Валерий Макеев - 29.09.2025 14:33:15
Этот код изменяет цвет фона блока при нажатии на кнопки с разными цветами, используя как обработчик событий Битрикс (BX), так и резервный обработчик на чистом JavaScript для надежности.
Код
<?php require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/header.php'); ?>
<div id="color-changer">
    <button data-color="red">Красный</button>
    <button data-color="green">Зеленый</button>
    <button data-color="blue">Синий</button>
    <div id="color-display" style="width: 100px; height: 100px; border: 1px solid black;"></div>
</div>
<script>
    // Проверяем, загружен ли BX
    if (typeof BX === 'undefined') {
        console.error('BX не определен. Проверьте загрузку ядра Битрикс.');
    } else {
        BX.ready(function() {
            console.log('BX загружен и готов');

            // Проверяем существование элементов
            var changer = BX('color-changer');
            var display = BX('color-display');

            if (!changer) {
                console.error('Элемент color-changer не найден');
                return;
            }
            if (!display) {
                console.error('Элемент color-display не найден');
                return;
            }

            // Добавляем обработчик с проверками
            BX.bind(changer, 'click', function(e) {
                var target = e.target || e.srcElement;
                if (target.tagName === 'BUTTON') {
                    var color = target.getAttribute('data-color');
                    if (color) {
                        console.log('Изменение цвета на:', color);
                        display.style.backgroundColor = color;
                    } else {
                        console.error('Атрибут data-color не найден');
                    }
                }
            });

            console.log('Обработчик событий установлен');
        });
    }

    // Добавляем резервный обработчик на чистом JS на случай проблем с BX
    document.addEventListener('DOMContentLoaded', function() {
        var changer = document.getElementById('color-changer');
        if (changer) {
            changer.addEventListener('click', function(e) {
                if (e.target.tagName === 'BUTTON') {
                    var color = e.target.getAttribute('data-color');
                    var display = document.getElementById('color-display');
                    if (display && color) {
                        display.style.backgroundColor = color;
                    }
                }
            });
        }
    });
</script>
<?php require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/footer.php'); ?>

Страницы: 1
Ответить
Форма ответов
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
 

Стоимость услуг по разработке и сопровождению сайтов на 1C-Битрикс

Разработка интернет-магазина с готовой версткой

от 4 недель

от 90 000 рублей

* указана минимальная стоимость. Стоимость выбранной лицензии «1С-Битрикс» оплачивается отдельно.

Модули и компоненты для «1С-Битрикс»

оценка производится на основе предоставленного Технического Задания

от 20 000 рублей
Разработка дополнительных модулей для 1С-Битрикс, расширение функционала, внедрение любых решений, требующихся для выполнения ваших бизнес-задач.

* стоимость зависит от конкретной задачи, ее объема и сложности выполняемых работ.

Перенос сайтов на «1С-Битрикс»

сайты на платформе «1С-Битрикс» — это удобство, надежность и высокая посещаемость

от 12 000 рублей
Перенос сайтов с любых CMS и статичных страниц на платформу «1С-Битрикс», с учетом дизайна, верстки и урл-адресов. С сохранением всей информации и структуры сайта.

* зависит от объема выполняемых работ.