jQuery addCss 和 .removeCss 仅适用于页面刷新
jQuery addCss and .removeCss only works on page refresh
到无序列表
<ul class="sf-navbar sf-menu" id="sfmenu">
我正在使用以下 jQuery 代码,但它仅适用于页面刷新。
jQuery(document).ready(function() {
if ($(window).width() > 768) {
$('#sfmenu').removeClass( "nav navbar-nav" ).addClass('sf-navbar sf-menu');
}
if ($(window).width() < 768) {
$('#sfmenu' ).addClass( "nav navbar-nav" ).removeClass( "sf-navbar sf-menu" );
}
});
我也试过这个:
jQuery(document).ready(function() {
if ($(window).width() > 768) {
$('#sfmenu').removeClass( "nav navbar-nav" );
$('#sfmenu').addClass('sf-navbar sf-menu');
}
if ($(window).width() < 768) {
$('#sfmenu' ).addClass( "nav navbar-nav" );
$('#sfmenu' ).removeClass( "sf-navbar sf-menu" );
}
});
但是没有成功。
我也尝试使用 UL 作为
<ul class="" id="sfmenu">
但是还是没有成功。非常感谢您的建议!
使用$(window).resize()喜欢,
jQuery(document).ready(function() {
function sfmenuToggle() {
if ($(window).width() > 768) {
$('#sfmenu').removeClass( "nav navbar-nav" )
.addClass('sf-navbar sf-menu');
}
if ($(window).width() < 768) {
$('#sfmenu' ).addClass( "nav navbar-nav" )
.removeClass( "sf-navbar sf-menu" );
}
}
// on window resize
$(window).resize(function(){
sfmenuToggle();
});
// on page load
sfmenuToggle();
});
看起来您需要 window 调整大小事件:
$(document).ready(function() {
$(window).resize(function() {
if ($(window).width() > 768)
$('#sfmenu').removeClass( "nav navbar-nav" ).addClass('sf-navbar sf-menu');
else
$('#sfmenu' ).addClass( "nav navbar-nav" ).removeClass( "sf-navbar sf-menu" );
}).resize();//to trigger on ready
});
您只是 运行 .ready
事件的代码,即页面完成加载时的代码。
另外尝试绑定 $(window).on('resize', function () { ...
。
使用调整大小事件:
$(window).resize(function(){
if ($(window).width() > 768) {
$('#sfmenu').removeClass( "nav navbar-nav" ).addClass('sf-navbar sf-menu');
}
if ($(window).width() < 768) {
$('#sfmenu' ).addClass( "nav navbar-nav" ).removeClass( "sf-navbar sf-menu" );
}
});
是的,那是因为您仅在加载 Dom 时才应用 css 类,无论是否调整 window 大小,这只会发生一次。可能您需要在 window re-size
事件中添加检查 window 大小。
以下是 window 调整大小事件的简单演示,请尝试在 JSfiddle 上调整 window 的大小以了解效果。
JS代码:
$(function () {
$(window).resize(function () {
if ($(window).width() > 768) {
$('p').removeClass("green").addClass('red');
}
if ($(window).width() < 768) {
$('p').removeClass("red").addClass("green");
}
});
});
现场演示@JSFiddle:http://jsfiddle.net/dreamweiver/dCug7/51/show
到无序列表
<ul class="sf-navbar sf-menu" id="sfmenu">
我正在使用以下 jQuery 代码,但它仅适用于页面刷新。
jQuery(document).ready(function() {
if ($(window).width() > 768) {
$('#sfmenu').removeClass( "nav navbar-nav" ).addClass('sf-navbar sf-menu');
}
if ($(window).width() < 768) {
$('#sfmenu' ).addClass( "nav navbar-nav" ).removeClass( "sf-navbar sf-menu" );
}
});
我也试过这个:
jQuery(document).ready(function() {
if ($(window).width() > 768) {
$('#sfmenu').removeClass( "nav navbar-nav" );
$('#sfmenu').addClass('sf-navbar sf-menu');
}
if ($(window).width() < 768) {
$('#sfmenu' ).addClass( "nav navbar-nav" );
$('#sfmenu' ).removeClass( "sf-navbar sf-menu" );
}
});
但是没有成功。
我也尝试使用 UL 作为
<ul class="" id="sfmenu">
但是还是没有成功。非常感谢您的建议!
使用$(window).resize()喜欢,
jQuery(document).ready(function() {
function sfmenuToggle() {
if ($(window).width() > 768) {
$('#sfmenu').removeClass( "nav navbar-nav" )
.addClass('sf-navbar sf-menu');
}
if ($(window).width() < 768) {
$('#sfmenu' ).addClass( "nav navbar-nav" )
.removeClass( "sf-navbar sf-menu" );
}
}
// on window resize
$(window).resize(function(){
sfmenuToggle();
});
// on page load
sfmenuToggle();
});
看起来您需要 window 调整大小事件:
$(document).ready(function() {
$(window).resize(function() {
if ($(window).width() > 768)
$('#sfmenu').removeClass( "nav navbar-nav" ).addClass('sf-navbar sf-menu');
else
$('#sfmenu' ).addClass( "nav navbar-nav" ).removeClass( "sf-navbar sf-menu" );
}).resize();//to trigger on ready
});
您只是 运行 .ready
事件的代码,即页面完成加载时的代码。
另外尝试绑定 $(window).on('resize', function () { ...
。
使用调整大小事件:
$(window).resize(function(){
if ($(window).width() > 768) {
$('#sfmenu').removeClass( "nav navbar-nav" ).addClass('sf-navbar sf-menu');
}
if ($(window).width() < 768) {
$('#sfmenu' ).addClass( "nav navbar-nav" ).removeClass( "sf-navbar sf-menu" );
}
});
是的,那是因为您仅在加载 Dom 时才应用 css 类,无论是否调整 window 大小,这只会发生一次。可能您需要在 window re-size
事件中添加检查 window 大小。
以下是 window 调整大小事件的简单演示,请尝试在 JSfiddle 上调整 window 的大小以了解效果。
JS代码:
$(function () {
$(window).resize(function () {
if ($(window).width() > 768) {
$('p').removeClass("green").addClass('red');
}
if ($(window).width() < 768) {
$('p').removeClass("red").addClass("green");
}
});
});
现场演示@JSFiddle:http://jsfiddle.net/dreamweiver/dCug7/51/show