在调整屏幕大小时使用jquery-js更改类名

Changing a class name with jquery-js when resize screen

本文关键字:jquery-js 调整 屏幕 小时      更新时间:2023-09-26

我的站点中有一个3菜单。

桌面=经典html菜单+超级鱼jquery

mobile=有slicknav jquery菜单(包括桌面的每个菜单)

现在我的问题是在slicknav上包含superfish的静态菜单。

为此,我想创建一个条件,当屏幕大小减少时,用slicknav类更改superfish菜单类。

问题是:当尝试使用一个简单的脚本来更改类时不起作用:

<script>
function resize() {
    if ( $(window).width() < 739) {     
    $("#nullo").toggleClass('sf-menu cambioclasse2');
    }
    else {
    $("#nullo").toggleClass('sf-menu sf-menu');
    }
}
$(window).on("resize", resize);
resize(); // call once initially
</script> 

这是菜单的一个例子

  <div id="header" class="clearfix">
    <ul id="top-menu">
    <ul id="nullo" class="sf-menu">
      <li>
        <a class="tito" href="/amministra/"><img src="/inc/files/images/adminplus.png"></a><div class="ams">AMMINISTRA</div>
           <ul>
                                        <li>
                            <a class="tab_amministra" href="/amministra/gestione_commerciale/" title="">
                              Commerciale                           </a>
                        </li>
                                                <li>
                            <a class="tab_amministra" href="/amministra/gestione_eccellenze/" title="">
                              Eccellenze                            </a>
                        </li>
                                                <li>
                            <a class="tab_amministra" href="/amministra/gestione_aree/" title="">
                              Aree                          </a>
                        </li>
                                                <li>
                            <a class="tab_amministra" href="/amministra/gestione_contabile/" title="">
                              Contabile                         </a>
                        </li>
                                                <li>
                            <a class="tab_amministra" href="/amministra/gestione_certificazioni/" title="">
                              Certificazioni                            </a>
                        </li>
                                                <li>
                            <a class="tab_amministra" href="/amministra/gestione_compensi/" title="">
                              Compensi                          </a>
                        </li>
                                                <li>
                            <a class="tab_amministra" href="/amministra/gestione_trattative/" title="">
                              Trattative                            </a>
                        </li>
                                                <li>
                            <a class="tab_amministra" href="/amministra/gestione_club/" title="">
                              Club                          </a>
                        </li>
                                                <li>
                            <a class="tab_amministra" href="/amministra/gestione_guida/" title="">
                              Guida                         </a>
                        </li>
                                                <li>
                            <a class="tab_amministra" href="/amministra/gestione_pagine/" title="">
                              Pagine                            </a>
                        </li>
                                                <li>
                            <a class="tab_amministra" href="/amministra/gestione_mailing/" title="">
                              Mailing                           </a>
                        </li>
                                                <li>
                            <a class="tab_amministra" href="/amministra/gestione_report/" title="">
                              Report                            </a>
                        </li>
                                                <li>
                            <a class="tab_amministra" href="/amministra/gestione_batching/" title="">
                              Batching                          </a>
                        </li>
                                                <li>
                            <a class="tab_amministra" href="/amministra/gestione_temi_seo/" title="">
                              Classificazione                           </a>
                        </li>
                                                <li>
                            <a class="tab_amministra" href="/amministra/gestione_visite_pagine/" title="">
                              VIsite pagine                         </a>
                        </li>
                                   </ul>
      </li>
</ul>

          <li><a href="/">Home</a></li>
                        <li>
                <a href="/vacanze_weekend/">
                Vacanze             </a>
            </li>
                        <li>
                <a href="/matrimoni/">
                Matrimoni               </a>
            </li>
                        <li>
                <a href="/meeting/">
                Meeting             </a>
            </li>
          </li>
                    <li></li>

这导致slicknav在没有id的情况下重建菜单的输出,因此脚本无法工作,因为不存在id"nullo"

现在如何只创建class而不创建id的条件??

或者可以更改slicknav?

更新::我测试了这个脚本,如果在大屏幕中打开页面(超级鱼)和在移动屏幕中缩小页面(slicknav)后,这个脚本就可以工作,但如果打开小尺寸页面(slichnav)和在大屏幕(超鱼)后,它就不工作了。

<script>
function resize() {
    if ( $(window).width() > 739) {     
    $("#nullo").toggleClass('sf-menu sf-menu');
    }
    else {
    }
}
$(window).on("resize", resize);
resize(); // call once initially
</script>

<script>
 function resize() {
    if ( $(window).width() < 739) {     
        $(".sf-menu").toggleClass('sf-menu cambioclasse2');
    }
    else {
    }
}
$(window).on("resize", resize);
resize();
</script>

为什么?

用这个异常代码解决了,我该如何优化它?:

<script>
if ( $(window).width() > 739) {     
  $("#nullo").toggleClass('cambioclasse2 sf-menu');
}
else {
}

</script>


<script>
 function resize() {
    if ( $(window).width() > 739) {     
        $("#nullo").toggleClass('cambioclasse2 sf-menu');
    }
    else {
    }
}
$(window).on("resize", resize);
resize();
</script>


<script>
function resize() {
    if ( $(window).width() > 739) {     
    $("#nullo").toggleClass('sf-menu sf-menu');
    }
    else {
    }
}
$(window).on("resize", resize);
resize(); // call once initially
</script>

<script>
 function resize() {
    if ( $(window).width() < 739) {     
        $(".sf-menu").toggleClass('sf-menu cambioclasse2');
    }
    else {
    }
}
$(window).on("resize", resize);
resize();
</script>
function resize() {
    if ($(window).width() > 739) {     
        $(".sf-menu").toggleClass('sf-menu cambioclasse2');
    }
    else {
        $(".cambioclasse2").toggleClass('cambioclasse2 sf-menu');
    }
}
$(window).on("resize", resize);
resize();

这个函数应该被证明对异常代码有更小更好的适应能力。因为它只会在需要时更改元素的类,而如果它已经在正确的类中,则不会修改它。