mail@vecdev.ru

Правильный вызов функции через Bitrix Javascript

В целом тут нет ничего сложного, нужно лишь сформировать нужную структуру JS, с использованием BS.JS API.


BX.ready(function () {
    // создаем новый объект, с которым будем работать
    // он будет принадлежать родителю window
    var vdEditForm = new VDEditForm();
});

(function (window) {
    'use strict'; // поддержка старых версий JS (до ES5)

    window.VDEditForm = function() {
        // получаю массив всех кнопок на странице, для вызова формы
        // специально получаю не через ID, а через параметр data
        this.editformBtn = document.querySelectorAll('a[data-entity="edit-form"]'); 
        
        this.errorCode = 0;
        // для проверки работы всех параметров, тут надо условия понавставлять, 
        // например если кнопок не найдено и если все ок то выполняем инициацию
        if (this.errorCode === 0) {
            BX.ready(BX.delegate(this.init,this));
        }
    };

    // пишем прототип с функциями обработчиками, запускается все с init
    window.VDEditForm.prototype = {
        //инициализируем события
        init: function () {
           // перебираем нам массив объектов-кнопка и каждой назначен событие клика
            this.editformBtn.forEach(function(elem) {
                BX.bind(elem, 'click', BX.proxy(window.VDEditForm.prototype.showForm, this));
            });
        },

        // функция обработчик, тут пишем, что необходимо сделать с событием, например показать форму обратной связи
        showForm: function (e) {

        }
    }
    
})(window);

Частный разработчик сайтов Vector Dev
Комментарии