5

我正在使用 jasny bootstrap offcanvas 导航栏(http://jasny.github.io/bootstrap/components/#navmenu-offcanvas),只要页面上其他地方发生点击事件,它就会关闭。但是,我们有一个 Twitter 提要已被修改为在 3 个不同的 Twitter 帐户之间移动。为了在它们之间切换,触发点击。这导致每次推文切换时导航菜单都会关闭,我似乎无法阻止它。

这是推特滚动代码:

var tabCarousel = setInterval(function() {
    var tabs = $('#twittertab > li'),
        active = tabs.filter('.active'),
        nextone = active.next('li'),
        toClick = nextone.length ? nextone.find('a') : tabs.eq(0).find('a');
    toClick.trigger('click');
}, 5000)

我已经尝试过应用preventDefault()and stopPropagation()trigger('click')但我对 jQuery 非常缺乏经验,我真的只是在猜测把它放在哪里。

4

2 回答 2

0

对于任何有类似问题的人,如果您不介意通过导航栏本身之外的任何点击来牺牲导航栏关闭,那么答案很简单。即,解决方案意味着在导航栏外部单击不会关闭它。

只需将 'data-autohide="false"' 添加到 offcanvas 元素。

然后,我添加了一个功能,以在单击导航栏中的链接时切换导航栏状态,如下所示;

$('#my-menu > li > a').click(function() {
    $('.navmenu').offcanvas('toggle');
});

这意味着,如果您的链接没有转到其他页面,但在同一页面的某个位置有一个锚点,则当您单击以移动到该部分时,菜单将关闭。

于 2015-05-26T11:39:59.800 回答
0

如果您想在点击内部链接时关闭导航菜单,那么您必须在此添加“ data-autohide="false"
<div class="navmenu navmenu-default navmenu-fixed-right offcanvas">
并将此脚本添加
$(document).ready(function(){$('.navmenu a').click(function() { $('.navmenu').offcanvas('hide'); });})
到您的代码中。就是这样。
注意:它在单页应用程序中就像魅力一样工作。

于 2015-11-22T07:45:00.640 回答