无法在窗口调整大小时删除和应用事件处理程序。 (适用于FireFox,不适用于Chrome)

时间:2013-12-23 02:18:01

标签: jquery

我想要一个显示或隐藏div的按钮,但是当我调整浏览器大小并触发媒体查询时,我想要禁用该按钮,在调整大小到之前的媒体查询时再次启用它。

我正在使用body:after {content:'tablet'; display:none;}body:after {content:'laptop'; display:none;}进行媒体查询,效果很好。

我正在使用jQuery .on();.off();在窗口大小调整上添加/删除事件处理程序。我遇到的问题是事件处理程序正在添加,但是当我点击它时,它会立即切换,返回到“平板电脑”视口大小。

如何制作它以便在我调整“笔记本电脑”大小时删除处理程序,但当我再次调整为“平板电脑”时,我会添加事件处理程序。

jQuery

function chooseMenu() {
    $('#sidebarWrapper').css('position', 'absolute').stop(true, true).toggle('showOrHide');
} // button function

if (size != currentSize) {
    if (size == 'tablet') {
        $('.menuButton').on('click', chooseMenu);
        $('#sidebarWrapper').css('display', 'none');
        currentSize = 'tablet';
    }
    if (size == 'laptop') {
        $('.menuButton').off();
        $('#sidebarWrapper').css('position', 'static');
        $('#sidebarWrapper').css('display', 'block');
        currentSize = 'laptop';
    }
} //if size

我假设我的开/关或切换逻辑出了问题,我必须要错过。如果不是这种情况,您需要查看更多信息,或者只是查看实际网站。这是左侧灰色条带上的菜单按钮。 http://lartmagazine.co.uk/。 (对不起链接我只是不知道如何在小提琴中显示这一点。)

错误..在检查我的链接时,我注意到它在FireFox中有效但在Chrome中无效吗?

1 个答案:

答案 0 :(得分:0)

问题是当我调整窗口大小时我需要限制我的功能,我安装了underscore.js并使用了这个:

$(window).resize(_.debounce(function(){

},100));

我实际上之前安装了这个,但忘记了它与其他东西一起玩......