В целом тут нет ничего сложного, нужно лишь сформировать нужную структуру 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);