gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 17:01:27 25 4
gpt4 key购买 nike

我的站点有 3 个菜单。

桌面= 经典html 菜单+ superfish jquery

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

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

为此,我想创建一个条件,当屏幕尺寸减小时,将 superfish 菜单的类更改为 slicknav 的类。

问题:当尝试使用示例时,更改类的简单脚本不起作用:

<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"

现在如何只用类而不用 id 创建条件??

或者可以对 slicknav 应用更改?

更新::我测试了这个脚本,如果在大屏幕(superfish)和在移动屏幕(slicknav)减少页面后打开页面,这个工作,但如果打开小页面则不工作大小(slicknav)和之后进入大屏幕(superfish)。

<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();

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

关于javascript - 调整屏幕大小时使用 jquery-js 更改类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31157962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com