我有以下代码来添加和删除一个类,具体取决于.woocommerce-mini-cart
是否比其父元素短。
$(document).ready(function(){
function maybeAdjustCartClass() {
let cartWrapper = $( '.woocommmerce-mini-cart-wrapper' );
let cartHeight = $( '.woocommerce-mini-cart' ).height();
let cartLength = $( '.woocommerce-mini-cart' ).length;
let cartContainerHeight = $( '.widget_shopping_cart_content' ).height();
if ( cartLength < 1 || cartHeight < cartContainerHeight ) {
cartWrapper.addClass( 'add-height' );
} else {
cartWrapper.removeClass( 'add-height' );
}
}
maybeAdjustCartClass();
$( window ).on( 'resize', function() {
maybeAdjustCartClass();
} );
});
在页面加载时,cartHeight
为null
,cartLength
为0
。只要我进行任何类型的调整,一切都按预期工作。购物车长度表示1,.woocommerce-mini-cart
与检验员所说的高度相匹配,并且该类被添加到元素中并被移除。它仅适用于页面加载。我尝试通过添加cartLength < 1
运算符以及尝试cartLength === 0
或cartHeight === null
来解释这种愚蠢行为。
我甚至给.woocommerce-mini-cart
最小高度1px,但都无济于事。 .woocommerce-mini-cart
存在于页面加载中并且位于DOM中。我完全不知道为什么这不能按预期工作。