jQuery 根据另一个元素的 class 更改 css
jQuery change css based on class of another element
我有这段代码,它会检查 class 并根据 class 是否存在来更改 CSS。然而,它随后保持 CSS 那样,顶部边距为 37px。如果 Class 已被删除并将 CSS 改回来,我将如何让它再次检查?
function checkForStickyClass()
{
if ($('.sticky-wrapper').hasClass('is-sticky'))
$('#mobile-menu-wrap').css('top','37px');
else
setTimeout(checkForStickyClass, 100);
}
$(checkForStickyClass);
我试着修改了一下
function checkForStickyClass()
{
if ($('.sticky-wrapper').hasClass('is-sticky'))
$('#mobile-menu-wrap').css('top','37px');
else if
(!$('.sticky-wrapper').hasClass('is-sticky'))
$('#mobile-menu-wrap').css('top','0');
else
setTimeout(checkForStickyClass, 100);
}
$(checkForStickyClass);
现在这不起作用,因为它始终保持在 0px。显然我这里有一些逻辑错误。请帮助
每次都需要设置Timeout,所以setTimeout
前面没有else
。
是什么改变了您的 class?您能否使用该代码也更改 #mobile-menu-wrap
的样式?
我明白了!这是工作代码,谢谢 Alex
function checkForStickyClass()
{
setTimeout(checkForStickyClass, 100);
if (jQuery('.sticky-wrapper').hasClass('is-sticky'))
jQuery('#mobile-menu-wrap').css('top','37px');
else if (!jQuery('.sticky-wrapper').hasClass('is-sticky'))
jQuery('#mobile-menu-wrap').css('top','0px');
}
jQuery(checkForStickyClass);
我有这段代码,它会检查 class 并根据 class 是否存在来更改 CSS。然而,它随后保持 CSS 那样,顶部边距为 37px。如果 Class 已被删除并将 CSS 改回来,我将如何让它再次检查?
function checkForStickyClass()
{
if ($('.sticky-wrapper').hasClass('is-sticky'))
$('#mobile-menu-wrap').css('top','37px');
else
setTimeout(checkForStickyClass, 100);
}
$(checkForStickyClass);
我试着修改了一下
function checkForStickyClass()
{
if ($('.sticky-wrapper').hasClass('is-sticky'))
$('#mobile-menu-wrap').css('top','37px');
else if
(!$('.sticky-wrapper').hasClass('is-sticky'))
$('#mobile-menu-wrap').css('top','0');
else
setTimeout(checkForStickyClass, 100);
}
$(checkForStickyClass);
现在这不起作用,因为它始终保持在 0px。显然我这里有一些逻辑错误。请帮助
每次都需要设置Timeout,所以setTimeout
前面没有else
。
是什么改变了您的 class?您能否使用该代码也更改 #mobile-menu-wrap
的样式?
我明白了!这是工作代码,谢谢 Alex
function checkForStickyClass()
{
setTimeout(checkForStickyClass, 100);
if (jQuery('.sticky-wrapper').hasClass('is-sticky'))
jQuery('#mobile-menu-wrap').css('top','37px');
else if (!jQuery('.sticky-wrapper').hasClass('is-sticky'))
jQuery('#mobile-menu-wrap').css('top','0px');
}
jQuery(checkForStickyClass);