Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止使用另一个元素关闭导航栏';s触发点击_Javascript_Jquery_Css_Twitter Bootstrap_Jasny Bootstrap - Fatal编程技术网

Javascript 防止使用另一个元素关闭导航栏';s触发点击

Javascript 防止使用另一个元素关闭导航栏';s触发点击,javascript,jquery,css,twitter-bootstrap,jasny-bootstrap,Javascript,Jquery,Css,Twitter Bootstrap,Jasny Bootstrap,我使用的是jasny bootstrap offcanvas navbar(),它将在页面其他地方发生单击事件时关闭。然而,我们有一个Twitter提要,它被修改为在3个不同的Twitter帐户之间移动。为了在它们之间切换,会触发单击。这导致每次tweets切换时navmenu都会关闭,我似乎无法阻止它 以下是推特滚动代码: var tabCarousel = setInterval(function() { var tabs = $('#twittertab > li'),

我使用的是jasny bootstrap offcanvas navbar(),它将在页面其他地方发生单击事件时关闭。然而,我们有一个Twitter提要,它被修改为在3个不同的Twitter帐户之间移动。为了在它们之间切换,会触发单击。这导致每次tweets切换时navmenu都会关闭,我似乎无法阻止它

以下是推特滚动代码:

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()
stopPropagation()
应用于
触发器('click')
,但我对jQuery非常缺乏经验,我只是在猜测应该把它放在哪里。

对于任何有类似问题的人,如果您不介意在导航栏外部单击以牺牲导航栏关闭,那么答案很简单。也就是说,解决方案意味着在导航栏外单击不会关闭导航栏

只需将“data autohide=“false”添加到offcanvas元素

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

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

这意味着,如果您的链接不是指向另一页,而是指向同一页上的某个位置,则当您单击以移动到该部分时,菜单将关闭。

如果您希望在内部链接单击时关闭导航菜单,则必须在此链接上添加“数据自动隐藏=“false”

并添加此脚本
$(文档).ready(function(){$('.navmenu a')。单击(function()){
$('.navmenu').offcanvas('hide');
});})

在你的代码中。就这样。

注意:在单页应用程序中,这就像魅力一样有效。

发布相关的
点击
手柄对不起,我不确定你的意思,我对jquery非常缺乏经验,我只是想在同事醒着的时候为他解决问题这
点击.trigger('click')使用jQuery调用绑定的处理程序,可以发布它吗?因为更好的方法是调用handler函数,而不是触发click事件。现在,如果这是由外部插件设置的,这可能会更复杂。您最好提供一个简单的示例来复制您的问题,例如使用jsfiddle我刚刚忘记了,但您应该尝试使用:
toClick.triggerHandler('click')这不会让事件在DOMA中传播。感谢A.Wolff的建议。很抱歉浪费您的时间,我假设jasny navbar上的autohide属性定义了默认情况下navbar是否展开或折叠。事实上,它阻止了导航栏外部的点击关闭导航栏,这正是我所需要的(因为我在导航栏内部有一个关闭按钮)。谢谢你的帮助