Jquery hasClass和动态添加的类

Jquery hasClass和动态添加的类,jquery,jquery-plugins,jquery-selectors,Jquery,Jquery Plugins,Jquery Selectors,我正在为jQuery使用一个名为JS Scrollpane的自定义滚动条库,但是当尝试将滚动条应用到已经有滚动条的DIV时,它会产生意外的结果。所以我要检查的是类“.jspScrollable”是否已应用,如果已应用,请不要应用滚动条。很简单,对吧 类“.jspScrollable”是由脚本动态添加的,似乎jQuery的hasClass方法是静态的,而不是动态的,因此它没有看到添加了新的类。是否有一种方法可以检查何时将动态类添加到元素中 别介意Pagels.bigcol的台词。这只是一个小对象,

我正在为jQuery使用一个名为JS Scrollpane的自定义滚动条库,但是当尝试将滚动条应用到已经有滚动条的DIV时,它会产生意外的结果。所以我要检查的是类“.jspScrollable”是否已应用,如果已应用,请不要应用滚动条。很简单,对吧

类“.jspScrollable”是由脚本动态添加的,似乎jQuery的hasClass方法是静态的,而不是动态的,因此它没有看到添加了新的类。是否有一种方法可以检查何时将动态类添加到元素中

别介意Pagels.bigcol的台词。这只是一个小对象,我将所有选择器都存储在其中,以优化我的代码,因为该站点目前大约有4000行JS

以下是我迄今为止的代码:

function initScrollers()
{
    pageEls.bigcol = $(".bigcol").filter(':visible');

    var settings = {
        animateScroll: true,
        autoReinitialise: true,
        hideFocus: true,
        verticalGutter: 15
    };

    if ( pageEls.bigcol.length && !pageEls.bigcol.hasClass('noScroller') ) 
    {
        if ( !pageEls.bigcol.hasClass('.jspScrollable') )
        {
            if (pageEls.bigcol.height() > 290)
            {
                pageEls.bigcol.jScrollPane(settings);
            }
        }
    }
}

hasClass
方法参数中不需要

更改:

 if ( !pageEls.bigcol.hasClass('.jspScrollable') )


拿这个。在
hasClass()
参数中关闭类名。应该是:

 if ( !pageEls.bigcol.hasClass('jspScrollable') )
在JSFIDLE中工作:

顺便说一句,您可以将三重嵌套的if语句折叠为:

  if ( pageEls.bigcol.length && 
       !pageEls.bigcol.hasClass('noScroller') &&
       !pageEls.bigcol.hasClass('.jspScrollable') &&
       pageEls.bigcol.height() > 290 )  
  {
      pageEls.bigcol.jScrollPane(settings);
  }

您不需要
hasClass
中的点。试试这个:

!pageEls.bigcol.hasClass('jspScrollable')
  if ( pageEls.bigcol.length && 
       !pageEls.bigcol.hasClass('noScroller') &&
       !pageEls.bigcol.hasClass('.jspScrollable') &&
       pageEls.bigcol.height() > 290 )  
  {
      pageEls.bigcol.jScrollPane(settings);
  }
!pageEls.bigcol.hasClass('jspScrollable')