Jquery 调整窗口大小时,列表不会重新出现

Jquery 调整窗口大小时,列表不会重新出现,jquery,slidetoggle,Jquery,Slidetoggle,我用CSS和jQuery制作了一个下拉菜单。如果缩小窗口,移动导航显示正常,但如果展开并关闭菜单,然后将窗口调整为更大的尺寸,则桌面导航不会重新显示,因为内嵌显示:无是通过滑动切换添加的。我想不出,为了我的生命,当窗口再次增大时,如何让菜单重新出现 HTML jQuery var $j = jQuery.noConflict(); $j(document).ready(function () { $j('ul.primary li').click(function () { var a = th

我用CSS和jQuery制作了一个下拉菜单。如果缩小窗口,移动导航显示正常,但如果展开并关闭菜单,然后将窗口调整为更大的尺寸,则桌面导航不会重新显示,因为内嵌显示:无是通过滑动切换添加的。我想不出,为了我的生命,当窗口再次增大时,如何让菜单重新出现

HTML

jQuery

var $j = jQuery.noConflict();
$j(document).ready(function () {
$j('ul.primary li').click(function () {
var a = this;
if ($j('ul', this).is(':visible')) {
    $j('ul', this).slideUp(function () {
        $j(a).removeClass('active')
    })
} else {
    $j('ul.drop').slideUp();
    $j('ul.primary li').removeClass('active');
    $j('ul', this).slideDown();
    $j(a).addClass('active')
}
});
$j('body').click(function (a) {
if (!$j(a.target).is('a')) {
    $j('ul.drop').slideUp();
    $j('ul.primary li').removeClass('active')
}
});
$j(function () {
$j('.mobile-nav').click(function (e) {
    $j('.primary').slideToggle(150, "swing");
    e.stopPropagation()
});
$j(window).resize(function() {
    $j('ul.drop').slideUp();
    $j('ul.primary li').removeClass('active')
});
})
});
以下是完整的标记和jQuery:


非常感谢您的帮助。

我找到的最佳解决方案是在windowResize函数中添加removeAttr,如下所示:

$j(window).resize(function() {
$j('ul.drop').slideUp();
$j('ul.primary li').removeClass('active')
});

这将在将窗口调整为桌面大小时删除移动视图导致的显示:无,但允许在移动视图中查看时再次应用显示。

您可以使用此小片段“取消应用”可能应用于列表且在调整大小时未删除的
style=“display:none;”“
。这会将其重置为
显示:(此处无)当窗口大小调整到768像素以上时

$(function(){
     $(window).resize(function(){
         if($(this).width() >= 768){
             $('#your-element-name').css('display', '');
         }
      })
      .resize(); 
});

无法重现您在小提琴中遇到的错误。如果转到“移动”视图,展开顶级下拉列表,然后收缩,然后调整大小为“桌面”视图,则列表将消失。下面是一个链接,链接到一个关于错误发生的视频:
$j(window).resize(function() {
$j('ul.drop').slideUp();
$j('ul.primary li').removeClass('active')
});
$(function(){
     $(window).resize(function(){
         if($(this).width() >= 768){
             $('#your-element-name').css('display', '');
         }
      })
      .resize(); 
});