javascript - 如何在 jQuery 中制作动画时禁用点击?

标签 javascript jquery html

我试图在列表元素动画时禁用单击,但没有成功。我发现类似 this 的帖子, thisthis和其他人也效仿了他们的例子,但似乎没有任何效果。谁能帮我解决这个问题吗?

我的代码:

var animateStatus = false;
	$('li').on('click', function(){
		animateStatus = true;
			$('li.active').animate({ 'top': '0px' }, 300, function(){ animateStatus = false; });
			$('li.active').removeClass('active');
			$(this).addClass('active');
			$(this).animate({ 'top': '-5px' }, 300, function(){ animateStatus = false; });
	});
ul{
    display: inline-block;
	vertical-align: middle;
    height: 300px;
}
li{
  position: relative;
  display: inline-block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>				
  <li>test 1</li>
  <li>test 2</li>
  <li>test 3</li>
</ul>

最佳答案

这是您想要的行为吗?

var animateStatus = false;
	$('li').on('click', function(){
        if(animateStatus) return;
		animateStatus = true;
			$('li.active').animate({ 'top': '0px' }, 300);
			$('li.active').removeClass('active');
			$(this).addClass('active');
			$(this).animate({ 'top': '-5px' }, 300, function(){ animateStatus = false; });
	});
ul{
    display: inline-block;
	vertical-align: middle;
    height: 300px;
}
li{
  position: relative;
  display: inline-block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>				
  <li>test 1</li>
  <li>test 2</li>
  <li>test 3</li>
</ul>

关于javascript - 如何在 jQuery 中制作动画时禁用点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35920430/

相关文章:

javascript - react /减少。从其他组件访问状态

Jquery读取查询字符串

javascript - 可变数量的切片 : Pie Chart concept

jQuery-ui 工具提示无法设置 css 字体颜色

javascript - 使用 JQuery 更新表单提交上显示的 div

javascript - 使用nodemailer发送电子邮件

javascript - 如何使用 javascript 获取 Chrome 扩展中当前选项卡的 URL

javascript - 无法取消订阅实时更新 : Uncaught Error in onSnapshot: Error: Missing or insufficient permissions

javascript - 使用 .trigger 将事件传递给子级

javascript - 在 html 中使用 javascript 展开/折叠不起作用