首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引导.affix - jQuery hasClass不工作

引导.affix - jQuery hasClass不工作
EN

Stack Overflow用户
提问于 2015-11-21 03:10:24
回答 2查看 374关注 0票数 0

我正在使用Bootstrap .affix插件,并且在添加词缀类时,我试图做一些事,但是由于某些原因,我似乎无法访问添加到导航栏中的类。

记住,navbar只是我创建的一个变量。

代码语言:javascript
复制
navbar.affix({
    offset: {
        top: header.height()
    }
});

上面的代码在滚动标题高度后将.affix类添加到我的导航栏中,当我查看工具时,我看到这个类肯定会被添加,但是当我尝试这样做时:

代码语言:javascript
复制
navbar.hasClass('affix', function() { // Do something });

上面的代码永远不会被调用..。就好像.affix从未添加到导航栏中一样。

我是不是漏掉了什么?它是否在做一些我不知道的事情,在某种程度上阻碍了我访问.affix类?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-21 03:32:37

不能将函数分配给hasClass方法。相反,使用基于hasClass结果的真/假条件来调用函数。

如果类被分配给一个元素,.hasClass()方法将返回true .

https://api.jquery.com/hasclass/

编辑:我检查了使用navbar.attr('class')将哪个类添加到元素中,结果是main-menu affix-top。因此,如果您检查hasClass('affix-top'),它应该可以工作。https://jsfiddle.net/yqy7gah6/14/

编辑2:您最好检查是否存在这三个类中的任何一个,以确定affix是否已经应用:下面是词缀插件的工作原理:affix-topaffixaffix-bottom

您可以将hasClassOR结合使用,或者最好像这样使用jQuery is

代码语言:javascript
复制
if (navbar.is('.affix, .affix-top, .affix-bottom')) {
  // Do you stuff here
}

来自Bootstrap对词缀的描述:

  1. 首先,插件添加了.affix-top以表示元素位于其最顶端。此时不需要CSS定位。
  2. 滚动通过您想要附加的元素应该会触发实际的附加。这是.affix取代.affix-top并设置位置的地方:固定;(由Bootstrap的CSS提供)。
  3. 如果定义了底部偏移量,滚动过它应该将.affix替换为.affix-bottom。由于偏移量是可选的,因此设置偏移量需要设置适当的CSS。在这种情况下,添加位置:绝对;在必要时。插件使用数据属性或JavaScript选项来确定元素的位置。
票数 2
EN

Stack Overflow用户

发布于 2015-11-21 03:27:17

如果使用jquery .hasClass,它只返回true/false,不接受函数;

代码语言:javascript
复制
if($(navbar).hasClass('affix'))
{ 
 CODE HERE  
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33839287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档