javascript - 涉及 e.preventDefault 的 if/else 语句

标签 javascript twitter-bootstrap

这可能是一个非常基本的问题,但我在为导航栏提供 if/else 语句时遇到困难。我有外部页面链接和特定 ID 的组合,我想在导航栏中单击时滚动到该 ID。下面是我正在处理的代码片段,由于 e.preventDefault,我无法访问外部链接。基本上我想防止默认的内部链接ID(而是向下滚动到该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();

谢谢!

最佳答案

似乎检查链接的 href 属性的第一个字符处的哈希符号即可:

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

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

Fiddle

关于javascript - 涉及 e.preventDefault 的 if/else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26852681/

相关文章:

javascript - 如何在 TypeScript 中将 JSON 对象转换为另一个对象

javascript - 使用 jQuery 重新加载对象并间隔触发函数

javascript - 性能差异(map()、forEach()、for())

html - 如何在内容中使用 Bootstrap 容器类的全宽?

javascript - 使用 jquery 更改显示的选择选项

javascript - 多部分/表单数据可以用 javascript 发送吗?

html - 图片上的文字 - 响应式

javascript - 由 MVC 呈现的对话框(弹出窗口) Bootstrap

jquery - 使用固定菜单时,我无法使用 Twitter Bootstrap 看到整个屏幕

javascript - 在 Node JS 中将文件循环到数组中时存储 fs.stat