Javascript 菜单上有「;滚动至#href";函数,但无法使用那里的_目标空白链接

Javascript 菜单上有「;滚动至#href";函数,但无法使用那里的_目标空白链接,javascript,jquery,html,Javascript,Jquery,Html,我的问题是,我的导航栏有滚动链接功能,因为我的网站在一个页面中 但我尝试添加一个新的链接到菜单,带有一个外部链接(不在同一页中) 当我单击它时,它不会打开链接(我假设jQuery脚本尝试滚动到它而不是打开…) 我应该如何修复它或添加异常 这是html: <ul class="menyy"> <li><a href="#info">Mis on Rahapuu?</a></li>

我的问题是,我的导航栏有滚动链接功能,因为我的网站在一个页面中

但我尝试添加一个新的链接到菜单,带有一个外部链接(不在同一页中)

当我单击它时,它不会打开链接(我假设jQuery脚本尝试滚动到它而不是打开…)

我应该如何修复它或添加异常

这是html:

<ul class="menyy">
                    <li><a href="#info">Mis on Rahapuu?</a></li>
                    <li><a href="#kkk">KKK</a></li>
                    <li><a href="#meist">Kes me oleme?</a></li>
                    <li><a href="http://rahapuu.eu/laenud/" target="_blank">Laenud</a></li>
                    <li><a href="#kontakt">Kontakt</a></li>
                </ul>  

有什么建议吗?

您可以给所有其他人一个
名称,并去掉链接

    <ul class="menyy">
        <li><a class="yourclass" href="#info">Mis on Rahapuu?</a></li>
        <li><a class="yourclass" href="#kkk">KKK</a></li>
        <li><a class="yourclass" href="#meist">Kes me oleme?</a></li>
        <li><a href="http://rahapuu.eu/laenud/" target="_blank">Laenud</a></li>
        <li><a class="yourclass" href="#kontakt">Kontakt</a></li>
    </ul>

您可以为所有其他类指定一个
名称,而不使用链接

    <ul class="menyy">
        <li><a class="yourclass" href="#info">Mis on Rahapuu?</a></li>
        <li><a class="yourclass" href="#kkk">KKK</a></li>
        <li><a class="yourclass" href="#meist">Kes me oleme?</a></li>
        <li><a href="http://rahapuu.eu/laenud/" target="_blank">Laenud</a></li>
        <li><a class="yourclass" href="#kontakt">Kontakt</a></li>
    </ul>

您可以对其进行过滤,使其仅包含具有基于哈希的链接的锚

jQuery(".tabs-btn ul li a, .navbar-nav li a, .navbar-brand, .menyy a").filter('[href^=#]').click(function(event){ ...

您可以对其进行过滤,使其仅包含具有基于哈希的链接的锚

jQuery(".tabs-btn ul li a, .navbar-nav li a, .navbar-brand, .menyy a").filter('[href^=#]').click(function(event){ ...

由于其他人拒绝添加类(这是迄今为止最好的方法,但我建议全面应用该类并简化选择器),我想我会提供一个通用的替代方案,不需要修改HTML(以防您因某种原因无法修改):


这只会将您的原始对象集合向下筛选为没有列出目标或没有值为
\u blank
的目标的项目。我还随意缓存了您的计算,因为您多次使用它们。

因为其他人放弃了添加类(这是迄今为止最好的方法,但是我建议全面应用该类并简化选择器),我想我会提供一个通用的替代方案,不需要修改HTML(以防您因某种原因无法修改):

这只会将您的原始对象集合向下筛选为没有列出目标或没有值为
\u blank
的目标的项目。我还随意缓存了您的计算,因为您多次使用它们

$(".tabs-btn ul li a, .navbar-nav li a, .navbar-brand, .menyy a").filter(function(){
    return (!this.target || this.target !== '_blank');
}).click(function(e){
    e.preventDefault();

    //calculate destination place
    var dest = 0,
        htDiff = $(document).height() - $(window).height(),
        hashOffset = $(this.hash).offset().top;

    if(hashOffset > htDiff){
        dest = htDiff;
    } else {
        dest = hashOffset;
    }

    //go to destination
    $('html,body').animate({scrollTop:dest}, 1000,'swing');
});