引导程序.粘贴-jQuery hasClass不工作
Bootstrap .affix - jQuery hasClass not working
我正在使用Bootstrap.词缀插件,我试图在添加词缀类时对导航栏做一些事情,但由于某种原因,一旦将该类添加到导航栏,我似乎就无法访问它。
请记住,导航栏只是我创建的一个变量。
navbar.affix({
offset: {
top: header.height()
}
});
上面的代码在滚动了标题的高度后,在导航栏上添加了.cottach类,当我在Chrome开发工具中查看时,我看到这个类确实被添加了,但当我尝试这样做时:
navbar.hasClass('affix', function() { // Do something });
上面的代码永远不会被调用。。就好像.词缀从未添加到导航栏中。
我是不是遗漏了什么?它是不是在做一些我不知道的事情,以某种方式阻止了我访问.s词缀类?
不能将函数分配给hasClass
方法。相反,使用基于hasClass
结果的true/false条件来调用函数。
如果将类分配给元素,.hasClass()方法将返回true。。。
https://api.jquery.com/hasclass/
EDIT:我已经检查了使用navbar.attr('class')
将哪个类添加到元素中,结果是main-menu affix-top
。因此,如果您检查hasClass('affix-top')
,它应该可以工作。https://jsfiddle.net/yqy7gah6/14/
EDIT 2:您应该更好地检查是否存在这三个类中的任何一个,以确定已经应用了affix
:以下是词缀插件的工作原理:affix-top
、affix
和affix-bottom
您可以将hasClass
与OR
一起使用,也可以更好地使用jQuery is
,如下所示:
if (navbar.is('.affix, .affix-top, .affix-bottom')) {
// Do you stuff here
}
来自Bootstrap对词缀的描述:
- 首先,插件添加
.affix-top
以指示元素在最上面的位置。在这一点上,不需要CSS定位- 滚动经过您想要粘贴的元素应该会触发实际粘贴。这是
.affix
取代.affix-top
并设置位置的位置:固定的(由Bootstrap的CSS提供)- 如果定义了底部偏移,滚动经过它应该用CCD_ 17代替CCD_。自从偏移是可选的,设置偏移需要设置适当的CSS。在这种情况下,添加position:绝对;必要时。插件使用数据属性或JavaScript选项来确定在哪里从那里定位元素
如果使用jquery.hasClass,它只返回true/false,不接受函数;
if($(navbar).hasClass('affix'))
{
CODE HERE
};
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- jquery.hasClass不能正常工作
- Jquery hasClass()函数工作不正常
- 为什么不;我的jquery工作(使用延迟、hasclass、addclass、removeclass、keyUp、key
- 引导程序.粘贴-jQuery hasClass不工作
- hasClass动态变量不工作
- hasClass jQuery不是't工作