Как привязать события воспроизведения к AJAX загруженным видео без jQuery? - PullRequest
0 голосов
/ 18 апреля 2020

Я знаю, как делать с событиями кликов, которые поддерживаются в каждом элементе. Таким образом, таким образом я могу использовать его для контента, который загружается позже с AJAX.

Но кажется, что событие play предназначено только для тегов video и audio. Так что я не могу слушать это на теле не так ли? Как можно добавить события воспроизведения к каждому видео, которое загружается позже с AJAX без jQuery?

jQuerys on(), и это правильно? Есть ли отдельный порт функции jQuery on(), который я мог бы использовать в качестве модуля?

document.body.addEventListener( 'mouseover', iframeEvent, false );
document.body.addEventListener( 'touchend', iframeEvent, false );
document.body.addEventListener( 'touchmove', iframeEvent, false );

function iframeEvent( ev ) {

    if ( ! ev.target ) {
        return;
    }

    const ele = ev.target;

    if ( ele.matches( 'iframe' ) ) {
        // do stuff
    }
}

1 Ответ

1 голос
/ 18 апреля 2020

События на таких вещах, как <audio> и <video>, не передаются на родительский элемент, поэтому обычная схема делегирования

document.body.addEventListener( 'play', iframeEvent, false );

не будет работать. Но вы можете использовать «фазу захвата» события, передав 3-й параметр в true

document.body.addEventListener( 'play', iframeEvent, true);

Подробнее здесь http://www.quirksmode.org/js/events_order.html

...