我有一个内容 slider ,另外我制作了“上一个”和“下一个”按钮。按钮应该只有在动画完成时才可以点击(动画持续时间为 500 毫秒)。我试图用 :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');
});
}
或者很简单,我需要在单击后停止按钮单击事件 500 毫秒。谁能帮帮我?
最佳答案
移动 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');
}
});
你也可以通过做这样的事情来干掉你的代码:
$(".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');
}
}
关于javascript - 只要动画有效,就试图停止 jQuery 单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4845720/