我需要“手动”从页面中删除多个mediaelement.js播放器。
我试过了:
video_player_1.remove();
video_player_2.remove();
video_player_3.remove();
...
(并尝试以各种循环方式尝试删除所有玩家。)
并且:
if (mejs) {
var players = Object.keys(mejs.players);
players.forEach( function(player) {
mejs.players[player].remove();
});
}
并
mejs.players = {};
甚至:
mejs = {};
似乎完全删除了玩家以及与之相关的任何事件。当我导航回视频页面时,我收到以下错误:
TypeError: 'undefined' is not a function (evaluating 'video_player_1.addEventListener')
有没有其他人遇到这个并找到了解决方案?谢谢你的帮助。
修改 我应该注意,我在每个玩家创建时都会添加以下监听器:
video_player_1.addEventListener('ended', function(event) {
//Code that advances to the next video here ...
}
答案 0 :(得分:2)
假设您使用jQuery,这样可以正常工作:
var player = $('#player')[0].player;
player.remove();
在此基础上,这应该删除视频元素上的所有mejs实例:
(function($) {
$(document).ready(function() {
var mejs_players = new Array();
var player;
$('video').each(function() {
player = $(this)[0].player;
player.remove();
});
});
})(jQuery);
答案 1 :(得分:0)
测试了最新的代码,删除功能应该改为
$('video').each(function() {
player = $(this).data("mediaelementplayer");
alert(player);
player.remove();
});