matchMedia removeListener不起作用?

时间:2014-09-09 03:10:06

标签: javascript media-queries listener

我正在尝试使用matchMedia / mediaQuery Web Api - 我可以成功添加一个监听器,但我无法删除监听器。

我错过了什么?

这个code demonstrates问题 - 尝试打印页面 - 注意即使你不应该在控制台中登录TEST,

var test=function(){
    console.log("TEST")
}

window.matchMedia('print').addListener(test);
window.matchMedia('print').removeListener(test);

我已经过测试,这种情况发生在Chrome和Safari上

1 个答案:

答案 0 :(得分:7)

您每次都在创建新的媒体查询列表,因此您无法从第一个查询中删除该侦听器。

var m = window.matchMedia('print');
m.addListener(test);
m.removeListener(test);