Javascript 防止使用另一个元素关闭导航栏';s触发点击
我使用的是jasny bootstrap offcanvas navbar(),它将在页面其他地方发生单击事件时关闭。然而,我们有一个Twitter提要,它被修改为在3个不同的Twitter帐户之间移动。为了在它们之间切换,会触发单击。这导致每次tweets切换时navmenu都会关闭,我似乎无法阻止它 以下是推特滚动代码: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'),
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是否展开或折叠。事实上,它阻止了导航栏外部的点击关闭导航栏,这正是我所需要的(因为我在导航栏内部有一个关闭按钮)。谢谢你的帮助