首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从函数中排除元素

从函数中排除元素
EN

Stack Overflow用户
提问于 2015-01-21 23:04:22
回答 1查看 53关注 0票数 0

每当我单击一个选项卡时,由于下面的代码,该窗口在单击后向下滚动。如何保持平滑的滚动代码,同时排除下面的html (或者在函数中使用jQuery选择器)?

我有这样的代码:

代码语言:javascript
复制
//smooth-scrolling
$(function() {
    $('ul.nav a, .smooth').bind('click',function(event){
        var $anchor = $(this);

        // $("li[role='presentation'] > a") <- Remove this from the scrollTop fn
        $('html, body').stop().animate({
            scrollTop: $($anchor.attr('href')).offset().top
        }, 1500,'easeInOutExpo');

        event.preventDefault();

    });
});

我不确定如何检查这是否是传入的元素,因为.bind()事件附加到我单击的内容:

代码语言:javascript
复制
<ul class="nav nav-tabs" role="tablist">
    <li role="presentation" class="active"><a href="#focus" aria-controls="focus" role="tab" data-toggle="tab">Test Tab</a></li>
</ul>

我知道:not()选择器,但是我不知道如何在这个场景中使用它(或者把它放在哪里,如果它是正确的路线)。我可能需要一些类似:not("role=tablist")" (?)的东西,但我不知道该放在哪里。

我尝试在所选元素上使用if语句,但似乎没有正确捕获它。我添加了一个在scrollTop命中之前返回未定义的函数,但它完全删除了该功能(正如它应该有的那样)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-21 23:14:58

可以在属性选择器中使用.not来排除元素。

代码语言:javascript
复制
$('ul.nav a, .smooth').not('[role="tab"]').on('click', function() {. ..
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28078532

复制
相关文章

相似问题

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