这可能是一个非常基本的问题,但我在为导航栏提供 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!');
}
});
关于javascript - 涉及 e.preventDefault 的 if/else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26852681/