Сброс эвента в JS
JS генерирует окно с видео элементом, на окне есть кнопка: закрыть, запускающая эвент закрытия созданного окна.
$(document).on('click', '.video', function(event){
event.preventDefault();
const htmlCollection = Object.values(event)[3];
var url_video = htmlCollection.querySelector('Source').src;
$('#overlay').fadeIn(250,
function(){
const video_pleer_box = document.getElementById("video_pleer_box");
$('#popUp')
.css('display', 'block')
.animate({opacity: 1, top: '55%'}, 490);
var pleer = document.createElement("video");
pleer.src = url_video;
pleer.style.height = "270px";
pleer.controls = "play";
video_pleer_box.appendChild(pleer);
});
return false;
});
$(document).on('click', '#close, #overlay', function(event){
event.preventDefault();
$('#popUp')
.animate({opacity: 0, top: '35%'}, 490,
function(){
$(this).css('display', 'none');
$('#overlay').fadeOut(220);
});
return false;
});
Все бы ок, но при повторном запуске сценария, предыдущее видео из элемента не сбрасывается, т.е. открывается то же окно, но дополняется следующим выбранным видео, попытки в эвенте закрытия, переопределять значения ссылки, пытаться удалить removeChild дочерний элемент pleer из video_pleer_box - не увенчались успехом.
Ответы (1 шт):
Благодарю, Alexander Chernin
а если так - после строки document.getElementById("video_pleer_box"); вызвать video_pleer_box.textContent = ''. Но removeChild тоже должен работать, если var pleer объявить "повыше" – Alexander Chernin
Это помогло мне!
...
$('#overlay').fadeIn(250,
function(){
const video_pleer_box = document.getElementById("video_pleer_box");
video_pleer_box.textContent = ''; //<< помогло добавление этой строки
$('#popUp')
.css('display', 'block')
...