我之前解决过我的导航栏链接点击后没有崩溃的问题,感谢@Kami我使用下面的代码工作了
$(document).on('click','.navbar-collapse.in',function(e) {
if( $(e.target).is('a') ) {
$(this).collapse('toggle');
}
});
来自Bootstrap 3 after navbar collapse, toggle wont reopen nav
但是当我在下面添加这个不错的功能以防止导航栏重叠内容时,它就破坏了。
此功能的哪一部分导致上述内容破坏,我如何实现这两个?
function scrollToAnchor() {
if($(".jquery-anchor").length > 0 && document.URL.indexOf("#") >= 0){
var anchor = document.URL.split("#")[1];
$(".jquery-anchor").each(function() {
if($(this).attr("name") == anchor) {
$("html,body").animate({
scrollTop: $(this).offset().top - 50},
'slow');
}
});
}
}
$(function() {
$("a[href*='#JDG']:not([href='#'])").click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')
&& location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top - 30 //offsets for fixed header
}, 1000);
return false;
}
}
});
//Executed on page load with URL containing an anchor tag.
if($(location.href.split("#")[1])) {
var target = $('#'+location.href.split("#")[1]);
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top - 30 //offset height of header here too.
}, 1000);
return false;
}
}
});
使用来自offsetting an html anchor to adjust for fixed header的@Shouvik建议 我更改了一行代码,只查找以#JDG开头的锚点,因为没有这个链接到我的模态窗口的锚点。 您可以看到here发生了什么,点击后我的服务菜单项不会关闭。这些函数放在bootstrap.min.js文件的末尾
答案 0 :(得分:1)
您实际上并没有告诉您的脚本关闭菜单。为此,请在function scrollToAnchor()
函数中添加以下行:
$('.navbar-collapse.in').collapse('hide');
编辑:再看一下脚本,上面的行应放在以下行而不是function scrollToAnchor()
函数中,即。单击菜单项时必须应用它:
$("a[href*='#JDG']:not([href='#'])").click(function() {
//...
$('.navbar-collapse.in').collapse('hide');
});
答案 1 :(得分:0)
Jasper指出了为什么这些在一起工作时不起作用的问题。
我只需删除
return false;
来自两个职能部门。