jQuery:Page的初始加载找不到Element,但是当调整大小时,会找到element。

时间:2018-05-04 04:15:51

标签: javascript jquery

我有以下代码来添加和删除一个类,具体取决于.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();
  } );
});

在页面加载时,cartHeightnullcartLength0。只要我进行任何类型的调整,一切都按预期工作。购物车长度表示1,.woocommerce-mini-cart与检验员所说的高度相匹配,并且该类被添加到元素中并被移除。它仅适用于页面加载。我尝试通过添加cartLength < 1运算符以及尝试cartLength === 0cartHeight === null来解释这种愚蠢行为。

我甚至给.woocommerce-mini-cart最小高度1px,但都无济于事。 .woocommerce-mini-cart存在于页面加载中并且位于DOM中。我完全不知道为什么这不能按预期工作。

0 个答案:

没有答案