首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除多个mediaelement.js播放器?

如何删除多个mediaelement.js播放器?
EN

Stack Overflow用户
提问于 2013-12-30 01:32:43
回答 2查看 2.9K关注 0票数 1

我需要‘手动’从一个页面中删除多个mediaelement.js播放器。

我试过的

代码语言:javascript
复制
video_player_1.remove(); 
video_player_2.remove();
video_player_3.remove();
...  

(并尝试以各种循环方式尝试删除所有玩家。)

和:

代码语言:javascript
复制
if (mejs) {
    var players = Object.keys(mejs.players);
    players.forEach( function(player) {
        mejs.players[player].remove();
    });
}

和:

代码语言:javascript
复制
mejs.players = {};

和偶数:

代码语言:javascript
复制
mejs = {};

似乎没有什么能完全移除玩家和任何与他们相关的事件。当我返回到“视频”页面时,会发现以下错误:

代码语言:javascript
复制
TypeError: 'undefined' is not a function (evaluating 'video_player_1.addEventListener')

还有其他人遇到这个问题并找到了解决办法吗?谢谢你的帮助。

编辑:--我应该注意,在创建它时,我会向每个播放器添加以下侦听器:

代码语言:javascript
复制
video_player_1.addEventListener('ended', function(event) {
    //Code that advances to the next video here ...
}
EN

回答 2

Stack Overflow用户

发布于 2014-01-06 19:06:56

假设您使用的是jQuery,这是很好的:

代码语言:javascript
复制
var player = $('#player')[0].player;
player.remove();

在此基础上,应该删除视频元素中所有mejs的实例:

代码语言:javascript
复制
(function($) {
    $(document).ready(function() {
        var mejs_players = new Array();
        var player;
        $('video').each(function() {
            player = $(this)[0].player;
            player.remove();
        });
    });
})(jQuery);
票数 2
EN

Stack Overflow用户

发布于 2014-01-17 08:10:35

测试了最新的代码,删除函数应该更改为

代码语言:javascript
复制
$('video').each(function() {
        player = $(this).data("mediaelementplayer");
        alert(player);
        player.remove();
    });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20832151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档