这很简单......但由于某种原因,我无法让它发挥作用。 下面的JQuery只需通过点击为sideNav栏上的选项设置背景动画。 但是,如果我要点击半/秒跨度内的多个项目,则会有多个项目发生动画。 (因此看起来像是一次选择了多个项目。)
event.stopPropogation();应该取消动画事件,不是吗? 如果没有,我该如何解决这个问题?谢谢!
$('.sidebar nav ul li').not('.user').click(function(event){
event.stopPropagation();
$('.sidebar nav ul li').css('background-size', '15px');
$('.sidebar nav ul li').removeClass('active');
$(this).animate({
'background-size': '100%'
}, 500);
setInterval(function(){
$(this).addClass('active');
return true;
},501);
});
答案 0 :(得分:2)
stopPropagation
完全听起来像它,它会阻止事件传播到DOM中更高的父元素。
它不会停止动画,即stop()
;
$('.sidebar nav ul li').not('.user').click(function(){
$('.sidebar nav ul li').stop(true, true)
.css('background-size', '15px')
.removeClass('active');
$(this).animate({
'background-size': '100%'
}, 500, function() {
$(this).addClass('active');
});
});