我有一个页面,其中包含内容(左侧)和侧边栏(右侧)。对于宽度小于等于480像素的屏幕,将2个div放在另一个下方(100%宽度)。可见的“显示/隐藏”按钮用于在单击时切换边栏的可见性。我用

$(".sidebar .box").slideToggle(200);

以此目的。

jsfiddle上一起查看所有内容。

问题:如果我切换到宽屏,然后又回到窄屏(宽度
我的错误在哪里?

谢谢!

最佳答案

这样的东西? http://jsfiddle.net/jqdvj42u/3/

$(document).ready(function() {
     $("a.expander").click(function () {
        $(this).toggleClass('close');
        $(".sidebar .box").slideToggle(200);
    });
});

function showSidebar() {
    if ($(window).width() <= 480) {
        // Close sidebar when window width <= 480px
        $(".sidebar .box").removeClass('open');
        // Click expander button to show/hide sidebar

    } else {
        $("a.expander").removeClass('close');
        // Open sidebar when window width > 480px;
        $(".sidebar .box").addClass('open');
    }
}
showSidebar();

$(window).resize(showSidebar);


您的点击不应在showSidebar()中调用,因为每次调用该函数时,它将绑定click事件。调整大小会触发showSidebar()多次,因此单击被绑定多次。同样,您应该使用jQuery 1.11作为最低版本,因为它的最新版本在IE
10-07 21:20