Jquery hasClass和动态添加的类
我正在为jQuery使用一个名为JS Scrollpane的自定义滚动条库,但是当尝试将滚动条应用到已经有滚动条的DIV时,它会产生意外的结果。所以我要检查的是类“.jspScrollable”是否已应用,如果已应用,请不要应用滚动条。很简单,对吧 类“.jspScrollable”是由脚本动态添加的,似乎jQuery的hasClass方法是静态的,而不是动态的,因此它没有看到添加了新的类。是否有一种方法可以检查何时将动态类添加到元素中 别介意Pagels.bigcol的台词。这只是一个小对象,我将所有选择器都存储在其中,以优化我的代码,因为该站点目前大约有4000行JS 以下是我迄今为止的代码:Jquery hasClass和动态添加的类,jquery,jquery-plugins,jquery-selectors,Jquery,Jquery Plugins,Jquery Selectors,我正在为jQuery使用一个名为JS Scrollpane的自定义滚动条库,但是当尝试将滚动条应用到已经有滚动条的DIV时,它会产生意外的结果。所以我要检查的是类“.jspScrollable”是否已应用,如果已应用,请不要应用滚动条。很简单,对吧 类“.jspScrollable”是由脚本动态添加的,似乎jQuery的hasClass方法是静态的,而不是动态的,因此它没有看到添加了新的类。是否有一种方法可以检查何时将动态类添加到元素中 别介意Pagels.bigcol的台词。这只是一个小对象,
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')