【问题标题】:External URL in nav bar doesn't work in bootstrap导航栏中的外部 URL 在引导程序中不起作用
【发布时间】:2016-06-27 00:42:10
【问题描述】:
最近设置了一个主题运行bootstrap作为我们的网站运行。一切正常,包括已放置在 HTML 中的外部 URL。
问题是,实际的导航栏没有注册外部 URL,并且在您单击时不会打开它们。它被 JS“Magnific Popup”阻止了,但我不知道具体为什么。任何帮助将不胜感激。
这里是网站的链接,有错误的导航栏在右上角。
Rustoria Website
【问题讨论】:
标签:
javascript
jquery
html
css
twitter-bootstrap-3
【解决方案1】:
这通常是由 javascript 中的 preventDefault() 方法引起的。我相信导航最初是为锚卷轴设计的。在 main.js 文件中,您将在第 62 行找到以下代码。
// Page Nav
var clickMenu = function() {
$('#navbar a:not([class="external"])').click(function(event){
var section = $(this).data('nav-section'),
navbar = $('#navbar');
if ( $('[data-section="' + section + '"]').length ) {
$('html, body').animate({
scrollTop: $('[data-section="' + section + '"]').offset().top
}, 500);
}
if ( navbar.is(':visible')) {
navbar.removeClass('in');
navbar.attr('aria-expanded', 'false');
$('.js-fh5co-nav-toggle').removeClass('active');
}
event.preventDefault();
return false;
});
};
如您所见,该功能正在阻止默认操作。阅读此函数后,您可以看到 jquery 选择器正在寻找 without "external" 类的 a 标签。只需将“外部”类添加到 a 标签即可解决此问题。