我正在尝试在backbone.js网站上使用mediaelement.js播放器,当我进出我设置的各种路线时,我无法手动删除视频/音频播放器。
假设我的页面上有两个视频。当我离开此页面时,这两个视频仍保留在内存中:
> mejs.players
> [object, object]
当我返回页面时,原始的两个视频仍然在内存中,另外两个视频被添加到播放器对象中:
> mejs.players
> [object, object, object, object]
事实上,每次离开页面然后返回时,都会在mejs.players
对象中添加另外2个玩家。
有没有办法手动清除/删除所有玩家?
我尝试了以下内容:
mejs.players[0].remove()
这似乎从页面中删除了播放器控件,留下了HTML5视频播放器。但是,当我检查mejs.players
时,播放器仍然存在。我可能错了,但这似乎不是最佳表现。
答案 0 :(得分:2)
由于这是针对Backbone站点(具有UnderscoreJS),这可行,您可以使用_.keys()而不是Object.keys()
if (mejs) {
var players = _.keys(mejs.players);
_.each(players, function(player) {
mejs.players[player].remove();
});
}
答案 1 :(得分:0)
首先删除mejs.players并创建新的mejs.players数组
if(mejs){
删除mejs.players;
mejs.players = [];
}