Javascript导航外部链接

时间:2013-04-03 12:22:41

标签: javascript jquery

我需要你的帮助。我有一条带有导航的功能区。它没有真正做任何事情,它只是“切换”活动/可见的链接,这是好的。但是,我想实现这一点,如果用户点击外部链接(示例中的profile-nav中的第三个li),则会将其带到链接中的url。非常感谢你!

HTML:

<div class="ribbon">
    <nav>
        <ul class="profile-nav">
              <li class="active"><a href="#" title="My Account">My Account</a></li>
              <li><a href="#" title="Login">Login</a></li>
              <li><a href="http://www.google.com" title="External link">External link</a></li>
        </ul>
        <ul class="lang-nav">
            <li class="active"><a href="#" title="English (US)">English (US)</a></li>
            <li><a href="#" title="English (UK)">English (UK)</a></li>
            <li><a href="#" title="Deutsch">Deutsch</a></li>
            <li><a href="#" title="Italiano">Italiano</a></li>
            <li><a href="#" title="Русский">Русский</a></li>
        </ul>
        <ul class="currency-nav">
            <li class="active"><a href="#" title="$US Dollar">$US Dollar</a></li>
            <li><a href="#" title="€ Euro">€ Euro</a></li>
            <li><a href="#" title="£ Pound">£ Pound</a></li>
        </ul>
    </nav>
</div>

JAVASCRIPT

$(document).ready(function () {
        $('.ribbon li').hide();
    $('.ribbon li.active').show();
    $(".ribbon li a").click(function() {
        $(".ribbon li").hide();
        if ($(this).parent().parent().hasClass('open'))
            $(this).parent().parent().removeClass('open');
        else {
            $(".ribbon ul").removeClass('open');
            $(this).parent().parent().addClass('open');
        }
        $(this).parent().siblings().each(function() {
            $(this).removeClass('active');
        });
        $(this).parent().attr('class', 'active'); 
        $('.ribbon li.active').show();
        $('.ribbon ul.open li').show();
        return false;
    });
});

1 个答案:

答案 0 :(得分:0)

有很多方法可以达到你想要的效果。按照您的方法,我建议您在锚点中添加class="nolink",而无需关注外部链接。之后将click事件绑定到相应的“a.nolink”。

HTML看起来如下:

<div class="ribbon">
    <nav>
        <ul class="profile-nav">
          <li class="active"><a href="#" class="nolink" title="My Account">My Account</a></li>
          <li><a href="#" class="nolink" title="Login">Login</a></li>
          <li><a href="http://www.google.com" title="External link">External link</a>            </li>
        </ul>
        <ul class="lang-nav">
            <li class="active"><a href="#" class="nolink" title="English (US)">English (US)</a></li>
            <li><a href="#" class="nolink" title="English (UK)">English (UK)</a></li>
            <li><a href="#" class="nolink" title="Deutsch">Deutsch</a></li>
            <li><a href="#" class="nolink" title="Italiano">Italiano</a></li>
            <li><a href="#" class="nolink" title="Русский">Русский</a></li>
        </ul>
        <ul class="currency-nav">
            <li class="active"><a href="#" class="nolink" title="$US Dollar">$US Dollar</a></li>
            <li><a href="#" class="nolink" title="€ Euro">€ Euro</a></li>
            <li><a href="#" class="nolink" title="£ Pound">£ Pound</a></li>
        </ul>
    </nav>
</div>

用于绑定元素的javascript:

$(".ribbon li a.nolink").click(function() { ...
相关问题