在调整屏幕大小时使用jquery-js更改类名
Changing a class name with jquery-js when resize screen
我的站点中有一个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();
这个函数应该被证明对异常代码有更小更好的适应能力。因为它只会在需要时更改元素的类,而如果它已经在正确的类中,则不会修改它。
相关文章:
- jQuery/JS包含运算符或类似运算符
- 使用.on动态添加jquery/js不知道的html元素
- 如何检查链接是否有文本,并根据文本值评估条件-Jquery/JS
- 导致内容安全策略(CSP)冲突错误的本地jquery.js文件
- HTML5在浏览器大小javascript/jquery上调整字体大小
- 在服务工作者中导入jquery.js
- jQuery/JS获胜't在表单验证后重定向
- jquery.js和jquery.lite.js有什么区别
- 在WordPress站点中加载jquery.js后加载javascript代码
- 将jQuery.js文件附加到html文档中
- JQuery窗口调整大小;不要开火
- 使用jquery'调整大小'具有功能
- jquery/js中的自执行函数
- 如何使用jquery/js/css逐步突出显示一段文本
- jQuery/JS Mimic Facebook's不在页面上时,标题在新消息上闪烁
- Rails:如何在jQuery(.js.erb)中调用“create”操作
- 是否可以调整大小或降低分辨率以减少文件's大小与jquery/js
- jQuery/JS等待图像宽度调整
- 使用jQuery/JS调整字体大小并覆盖font-size
- 在调整屏幕大小时使用jquery-js更改类名