Мне кажется, что основной (возможно, единственной) заменой, которую вам нужно сделать, является jQuery.on
. Обычно вы просто заменяете на document.addEventListener
, но поскольку вы используете фильтрацию, это немного усложняется.
Вот модуль, который я когда-то написал go и который часто используется для этого:
const addEvent = function(target, event, filter, callback, opts) {
if (typeof target === 'string') target = document.querySelectorAll(target);
if (!(target instanceof NodeList || target instanceof Array)) {
target = [target];
}
if (filter) {
var oldCb = callback;
callback = function(e) {
if (e.target.matches(filter)) oldCb(e);
};
}
for (var i = 0; i < target.length; i++) {
target[i].addEventListener(event, callback, opts);
}
};
То, как вы бы назвали это в приведенном выше примере, будет выглядеть так:
addEvent(document.body, 'mousedown', 'a[href$=pdf]', function(e) { /*...*/ });