的jQuery上点击两次火灾
问题描述:
WHE使用jQuery .on('click', ...)
执行两次功能:的jQuery上点击两次火灾
$(document).ready(function() {
$('#collapsible-menu li a').click(function() {
$('#collapsible-menu li').removeClass('active');
$(this).parent('li').addClass('active');
});
});
所以会发生什么是菜单项瞬间变为有效,然后阶级消失。
我不知道为什么它被解雇两次。我不想使用event.preventDefault()
或event.preventPropagation()
或return false
,因为然后点击链接将无处可用。
HTML:
<div class="collapse navbar-collapse" id="collapsible-menu">
<ul class="nav navbar-nav">
<li class="active"><a href="/expenses">Expenses</a></li>
<li class=""><a href="/types">Types</a></li>
</ul>
</div>
答
你点击该页面重定向到/types
锚。
当您转到另一页面时,无论javascript所做的任何更改都会丢失。
所以你添加一个类,然后将其重定向和类丢失,事件处理程序不会触发两次
为了避免重定向可以防止锚的默认操作
$('#collapsible-menu li a').click(function(e) {
e.preventDefault();
$('#collapsible-menu li').removeClass('active');
$(this).parent('li').addClass('active');
});
你不能期望保持类,和重定向在同一时间,你必须做一个或另一个。
最终结果将是该代码是无操作的。 –
你是如何确认点击处理程序执行两次的? console.log,提醒? – Igor
我通过提醒 – dabadaba