coco-modal
Version:
37 lines (31 loc) • 917 B
JavaScript
;
var handlers = {};
var root = document.body.querySelector(".root");
var content = document.body.querySelector(".content");
var addEvent = function addEvent(el, name, fn) {
el.addEventListener(name, fn);
};
var clickHandler = function clickHandler(btn) {
var type = btn.getAttribute("data-type");
var fn = handlers[type];
fn && fn();
};
var example = function example(type, fn) {
handlers[type] = fn;
};
var addSpan = function addSpan(btn) {
var span = document.createElement("span");
span.innerText = btn.innerText;
btn.innerText = "";
btn.appendChild(span);
};
addEvent(document, "DOMContentLoaded", function (_) {
var arr = document.body.querySelectorAll(".btn");
Array.from(arr).forEach(function (btn) {
addSpan(btn);
addEvent(btn, "click", function (_) {
clickHandler(btn);
});
content.appendChild(btn);
});
});