Set triggers for a custom event when addEventListener is called

82 views Asked by At

When thing.addEventListener(...) is called with a custom event in javascript, is there a way of running some code to set triggers on the thing? Here is an example:

var bong = new CustomEvent("bong");
element1.addEventListener('bong', (e) => console.log(`${e.target.id} bonged`));

Now I want bong to be triggered whenever certain things happen to element. Say, for example, mousedown and mouseup. I could write:

var bong = new CustomEvent("bong");
function setBongTriggers(element) {
    element.addEventListener('mousedown', (e) => e.target.dispatchEvent(bong));
    element.addEventListener('mouseup', (e) => e.target.dispatchEvent(bong));
}

element1.addEventListener('bong', (e) => console.log(`${e.target.id} bonged`));
setBongTriggers(element);

But I an going to have to do this for many elements and I don't want to have to call setBongTriggers for every one. Is there no way of telling addEventListener to set the triggers?

0

There are 0 answers