В форме функции это будет выглядеть так. Ввод будет другим для добавленного третьего параметра из-за элемента, который вы хотите передать для привязки слушателя события.
/**
* @param {string} eventNames
* @param {EventTarget} eventTarget
* @param {function} callback
*/
function one(eventNames, eventTarget, callback) {
if ('string' !== typeof eventNames ||
!(eventTarget instanceof EventTarget) ||
'function' !== typeof callback
) return;
const splitEventNames = eventNames.split(' ');
for (const eventName of splitEventNames) {
eventTarget.addEventListener(eventName, callback, { once: true });
}
}
Использование будет таким: первый аргумент - это события для прослушивания, второй аргумент - элемент для добавления прослушивателя события, а третий аргумент - функция обратного вызова, вызываемая при событии. пожары.
one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', thisBox, function(event) {
this.remove();
});