窗口大小为时禁用jQuery脚本

时间:2015-03-16 17:28:28

标签: jquery

当窗口大小小于700px时,我正在尝试禁用我的jQuery脚本。 因此,当窗口大小低于700px时,此脚本不应该正常工作。我无法让它发挥作用。 加载页面时脚本不起作用,但是当我调整浏览器窗口大小时,无论窗口大小是多少,它都可以正常工作。

这是我目前的代码:

jQuery(document).ready(function () {

    jQuery(window).resize(function () {
        if (jQuery(window).width() < 700) {

            jQuery("#block-menu-block-4 li, #block-menu-block-5 li").hover(

            function () {
                jQuery(this).addClass('hover');
                jQuery(this).children('.listContainer1, .listContainer2, .listContainer3, .listContainer4, .listContainer5, .listContainer6, .listContainer7').stop(true, true).show();
            },

            function () {
                jQuery(this).removeClass('hover');
                jQuery(this).children('.listContainer1, .listContainer2, .listContainer3, .listContainer4, .listContainer5, .listContainer6, .listContainer7').stop(true, true).slideUp(100);
            });

        }
    });

});

1 个答案:

答案 0 :(得分:0)

您在事件中注册事件时发生了一个基本(严重)错误。您将在调整大小时连接100s / 1000s的事件处理程序,并且永远不会删除旧的事件处理程序,因此您的代码当然会继续执行。

您需要注册hover一次并测试hover处理程序中的大小。

另一种方法是使用'on and off`来打开和关闭处理程序。

另一种方法是根据大小向容器/主体添加一个类,并使用仅与特定大小/类匹配的委托事件处理程序。