当窗口大小小于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);
});
}
});
});
答案 0 :(得分:0)
您在事件中注册事件时发生了一个基本(严重)错误。您将在调整大小时连接100s / 1000s的事件处理程序,并且永远不会删除旧的事件处理程序,因此您的代码当然会继续执行。
您需要注册hover
一次并测试hover
处理程序中的大小。
另一种方法是使用'on and
off`来打开和关闭处理程序。
另一种方法是根据大小向容器/主体添加一个类,并使用仅与特定大小/类匹配的委托事件处理程序。