如何排除特定的<;部门>;来自javascript

如何排除特定的<;部门>;来自javascript,javascript,jquery,Javascript,Jquery,我是一个初学者,我很难找到解决问题的方法。 我有一个网站。我已经使用javascript实现了滚动效果。 代码如下: jQuery(function($) { $('a[href*=#]:not([href=#])').click(function() { if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostn

我是一个初学者,我很难找到解决问题的方法。 我有一个网站。我已经使用javascript实现了滚动效果。 代码如下:

jQuery(function($) {
$('a[href*=#]:not([href=#])').click(function() {
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
        var target = $(this.hash);
        target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
        if (target.length) {
            $('html,body').animate({
                scrollTop: (target.offset().top - 80)
            }, 1000);
            return false;
        }
    }
});
$('.nav a').on('click', function(){
        $(".navbar-toggle").click() 
});
});
问题是它与“证明”部分的内容相冲突。被点击的图像(内部链接)并没有显示与其关联的文本,另一方面,它提供了一种滚动效果

证明部分代码可在此处找到:

如何纠正这一点


附言:我希望我的问题描述清楚:/

这不是一个很好的解决方案,但您可以做的是:

$('a[href*=#]:not([href=#]), a[href*=#]:not([href=#daksh]), a[href*=#]:not([href=#anna]), a[href*=#]:not([href=#wafer])')
这将排除您希望用于推荐部分的链接。

我建议通过专门应用行为而不是全局应用行为来“帮助”您的javascript

而不是将您的点击行为绑定到页面上的所有链接

$('a[href*=#]:not([href=#])')
尝试将其绑定到具有公共类的锚定标记(在本例中为
导航链接
),并将该类分配给导航栏中的每个链接

$('a.nav-link[href*=#]:not([href=#])')
或者至少将此功能仅分配给您的
.nav
锚定标记

$('.nav a[href*=#]:not([href=#])')

这样,当您“劫持”导航链接的行为时,页面上的所有其他链接都可以正常运行。

是否缺少分号?试试这个:

$('.nav a').on('click', function(){
  $(".navbar-toggle").click();
});

我有两个应该适用的解决方案:

停止即时复制 如果您颠倒了单击处理程序的顺序(它们的调用顺序与创建它们的顺序相同),那么将首先调用
.nav a
one,并在其中调用
event.stopImmediatePropagation()
。它将阻止调用第二个处理程序

委托处理人 您可以使用事件冒泡和jQuery:设置滚动处理程序,而不是直接在
元素上,例如在
元素上。而不是从
返回
false
。nav a
处理程序将阻止调用“滚动”处理程序。大致如下所示:

jQuery(function($) {
    $('body').on('click', 'a[href*=#]:not([href=#])', function() {
        // handler code
    });
    $('.nav a').on('click', function(){
        $(".navbar-toggle").click()
        return false;  // prevents delegated handler from being called
    });
});

在JS中,大多数分号都是可选的。使用它们是一种很好的形式,但上面的情况不会引起问题。很高兴这样做了!别忘了,因为它起作用了