Javascript 使用jQuery更改导航

Javascript 使用jQuery更改导航,javascript,jquery,html,css,navigation,Javascript,Jquery,Html,Css,Navigation,我必须执行以下操作:我有一个带有徽标的导航,HTML如下所示: <nav id="navigation-main"> <ul class="level_1 inside"> <li class="class1">Menüpunkt</li> <li class="class2>">Menüpunkt</li> <li id="logo"><a href="#">Lo

我必须执行以下操作:我有一个带有徽标的导航,HTML如下所示:

<nav id="navigation-main">
   <ul class="level_1 inside">
    <li class="class1">Menüpunkt</li>
    <li class="class2>">Menüpunkt</li>
    <li id="logo"><a href="#">Logo</a></li>        
    <li class="class3">Menüpunkt</li>
    <li class="clas4">Menüpunkt</li>
  </ul>
</nav>

    门üpunkt
  • Menüpunkt
  • Menüpunkt
  • Menüpunkt
在移动设备上,徽标应该永久出现在网站上,但不在导航中,因此我将其与jQuery一起放在navi之外。在删除时,它应该显示在后面。但只有当徽标从my navi中取出时,才会出现删除:

var bildschirmbreite = $(window).width();
  if (bildschirmbreite <= 1180) {
    $("#logo a").appendTo("header").addClass("logo");
    $("#logo").remove();
  }  
  $(window).resize(function() {
    var bildschirmbreite = $(window).width();
    if (bildschirmbreite <= 1180) {
        $("#logo a").appendTo("header").addClass("logo");
        $("#logo").remove();
        var resized = 1;
    }  
    if (bildschirmbreite >= 1180 && resized === 1) {
        $("#navigation-main .class2").after('<li id="logo"></li>');
        $(".logo").appendTo("#logo");
        $("#navigation-main").removeAttr("style");
    }
  });
});
var-bildschirmbreite=$(窗口).width();

如果(Bildschimbreite我有不同的方法,因为它重量轻

如果您在CSS中使用媒体屏幕,则无需使用JQuery

HTML更改包括:

<header>
  <div class="logo">
      <a href="#"><i class="fa fa-leaf" aria-hidden="true"></i></a>
  </div>
  <nav id="navigation-main">
    <ul class="level_1 inside">
        <li class="class1">Menüpunkt</li>
        <li class="class2>">Menüpunkt</li>
        <li id="logo"><a href="#"><i class="fa fa-leaf" aria-hidden="true"></i></a></li>
        <li class="class3">Menüpunkt</li>
        <li class="clas4">Menüpunkt</li>
    </ul>
 </nav>
</header>

好的,您的代码有一些问题:

这是一个打字错误

“类别2>”

此外,if条件下的块:

if (bildschirmbreite >= 1180 && resized === 1)
它将永远不会执行,因为已调整大小的代码将始终被识别为“未定义”(请尝试使用Chrome调试此代码)。若要修复此问题,请更改以下行:

....
var resized = 1;
} 
if (bildschirmbreite >= 1180 && resized === 1)


这很好,谢谢!但是现在(或者仍然)我有一个问题,
  • -元素永久性地出现在一个resize中,有可能处理这个问题吗?你是想用这个代码
    $(“#导航主节点”).removeAttr(“style”);
    ?不,我的意思是:
    $(“#导航主节点.class2”).after(“
  • ”);
    ....
    var resized = 1;
    } 
    if (bildschirmbreite >= 1180 && resized === 1)
    
    ....
    window.resized = 1;
    } 
    if (bildschirmbreite >= 1180 && window.resized === 1)