[英]Trying to stop jQuery click event as long as animation works
我有一个内容滑块,此外,我还单击了“上一个”和“下一个”按钮。 仅当动画完成(动画持续时间为500ms)时,才可以单击按钮。 我试图用:animated选择器解决它,但是它不起作用:
if (!$(".scrollContainer").is(':animated')) {
$(".nextItems a").click(function() {
$(".slideNavig").find('a.selected').removeClass('selected').parent().next().find("a").addClass('selected');
});
}
if (!$(".scrollContainer").is(':animated')) {
$(".prevItems a").click(function() {
$(".slideNavig").find('a.selected').removeClass('selected').parent().prev().find("a").addClass('selected');
});
}
或者很简单,我需要在单击后将按钮click事件停止500ms。 谁能帮我吗?
移动if语句,检查事件是否在click事件处理程序内动画化:
$(".nextItems a").click(function() {
if (!$(".scrollContainer").is(':animated')) {
$(".slideNavig").find('a.selected').removeClass('selected').parent().next().find("a").addClass('selected');
}
});
$(".prevItems a").click(function() {
if (!$(".scrollContainer").is(':animated')) {
$(".slideNavig").find('a.selected').removeClass('selected').parent().prev().find("a").addClass('selected');
}
});
您也可以通过执行以下操作使代码变干:
$(".nextItems a").click(function() {
nextPrevItem('next');
});
$(".prevItems a").click(function() {
nextPrevItem('prev');
});
function nextPrevItem( direction ) {
if (!$(".scrollContainer").is(':animated')) {
$(".slideNavig").find('a.selected').removeClass('selected')
.parent()[ direction ]()
.find("a").addClass('selected');
}
}
您需要在处理程序中使用if语句:
$(".nextItems a").click(function() {
if (!$(".scrollContainer").is(':animated')) {
$(".slideNavig").find('a.selected').removeClass('selected').parent().next().find("a").addClass('selected');
}
});
$(".prevItems a").click(function() {
if (!$(".scrollContainer").is(':animated')) {
$(".slideNavig").find('a.selected').removeClass('selected').parent().prev().find("a").addClass('selected');
}
});
您可以使用.delay()
(在jQuery 1.4及更高版本中可用),也可以使用.setTimeOut()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.