if / else语句涉及e.preventDefault

时间:2014-11-10 20:46:13

标签: javascript twitter-bootstrap

这可能是一个非常基本的问题,但我在为我的导航栏提出if / else语句时遇到了麻烦。我有一个外部页面链接和我要在我的导航栏中单击时要滚动到的特定ID的组合。下面是我处理由于e.preventDefault而无法访问外部链接的代码的片段。基本上我想防止默认的内部linkID(而是向下滚动到该ID),并在菜单选项是外部链接时正常执行。我能帮忙吗?

// if not an external link, scroll to specific ID when click on menu item
$('.webby-top-menu .navbar-nav a').click(function (e) {
    e.preventDefault();
    var linkId = $(this).attr('href');
    scrollTo(linkId);

    if ($('.navbar-toggle').is(":visible") == true) {
        $('.navbar-collapse').collapse('toggle');
    }

    $(this).blur();
    return false;
});

// stick navbar on top
$('.webby-top-menu ').stickUp();

谢谢!

1 个答案:

答案 0 :(得分:1)

似乎在链接的第一个字符处检查哈希符号' href属性会这样做:

$('.webby-top-menu .navbar-nav a').click(function (e) {
    var link = $(this).attr('href').charAt(0);

    if (link === '#') {
        e.preventDefault();
        alert('Anchor!');
    }
});

Fiddle