Данная библиотека является идеей, и носит демонстрационный характер.

StoreEvent

import { StoreEvent } from "bakugan";
Класс предоставляющий хранилище событий для DOM элеметов
Создание
new StoreEvent();
Создает экземпляр класса StoreEvent
подробней
import { StoreEvent } from "bakugan";

const storeEvent: StoreEvent = new StoreEvent();

console.log(storeEvent);
смотреть пример: web | github
Методы
on(key: string, element: HTMLElement, listeners: IHashMap<(event: Event) => void>): void
Добавляет события в элемент
подробней
Параметры:
  • key: string - уникальный ключ, по которому можно будет удалить привязанные события
  • element: HTMLElement - DOM элемент к которому будут добавлены события
  • listeners: IHashMap<(event: Event) => void> - список событий, которые будут добавлены. где ключ является именем события, а значение - это функция, которая будет обрабатывать данное событие
import { StoreEvent } from "bakugan";

const storeEvent: StoreEvent = new StoreEvent();

const div = document.createElement("div");
document.body.appendChild(div);
div.innerHTML = "text";

let flag: boolean = false;
storeEvent.on("myKey", div, {
    click: (event: MouseEvent) => {
        const key: string = "mouseEvents";

        flag = !flag;
        if (flag) {
            console.log("add hover", event);
            storeEvent.on(key, div, {
                mouseover: (ev: MouseEvent) => {
                    console.log("over", ev);
                },
                mouseout: (ev: MouseEvent) => {
                    console.log("out", ev);
                },
            });
        } else {
            console.log("del hover", event);
            storeEvent.off(key);
        }
    },
});

const button = document.createElement("button");
document.body.appendChild(button);
button.innerHTML = "remove listeners";

storeEvent.on("removeAll", button, {
    click: (event: MouseEvent) => {
        console.log("remove listeners", event);

        storeEvent.offAll();
    },
});
смотреть пример: web | github
off(key: string): void
Удаляет список событий по ключу
подробней
Параметры:
  • key: string - ключ, который был указн при добавлении списка событий
import { StoreEvent } from "bakugan";

const storeEvent: StoreEvent = new StoreEvent();

const div = document.createElement("div");
document.body.appendChild(div);
div.innerHTML = "text";

let flag: boolean = false;
storeEvent.on("myKey", div, {
    click: (event: MouseEvent) => {
        const key: string = "mouseEvents";

        flag = !flag;
        if (flag) {
            console.log("add hover", event);
            storeEvent.on(key, div, {
                mouseover: (ev: MouseEvent) => {
                    console.log("over", ev);
                },
                mouseout: (ev: MouseEvent) => {
                    console.log("out", ev);
                },
            });
        } else {
            console.log("del hover", event);
            storeEvent.off(key);
        }
    },
});

const button = document.createElement("button");
document.body.appendChild(button);
button.innerHTML = "remove listeners";

storeEvent.on("removeAll", button, {
    click: (event: MouseEvent) => {
        console.log("remove listeners", event);

        storeEvent.offAll();
    },
});
смотреть пример: web | github
offAll(): void
Полностью очищает хранилище от событий
подробней
import { StoreEvent } from "bakugan";

const storeEvent: StoreEvent = new StoreEvent();

const div = document.createElement("div");
document.body.appendChild(div);
div.innerHTML = "text";

let flag: boolean = false;
storeEvent.on("myKey", div, {
    click: (event: MouseEvent) => {
        const key: string = "mouseEvents";

        flag = !flag;
        if (flag) {
            console.log("add hover", event);
            storeEvent.on(key, div, {
                mouseover: (ev: MouseEvent) => {
                    console.log("over", ev);
                },
                mouseout: (ev: MouseEvent) => {
                    console.log("out", ev);
                },
            });
        } else {
            console.log("del hover", event);
            storeEvent.off(key);
        }
    },
});

const button = document.createElement("button");
document.body.appendChild(button);
button.innerHTML = "remove listeners";

storeEvent.on("removeAll", button, {
    click: (event: MouseEvent) => {
        console.log("remove listeners", event);

        storeEvent.offAll();
    },
});
смотреть пример: web | github