javascript - 只要动画有效,就试图停止 jQuery 单击事件

标签 javascript jquery timeout conditional-statements

我有一个内容 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/

相关文章:

java - 使用 Selenium WebDriver java 单击动态加载页面的元素

javascript - Gulp- javascript 文件的版本控制

javascript - 将表单值发送到多个页面

java - java调用外部程序超时

javascript - 如何将应用程序数据传递到 VueRouter 组件

javascript - 从 .js 文件或 JavaScript 函数中提取所有变量

javascript - 为什么 history.pushState 不起作用?

javascript - 如何在html中的img标签中添加 anchor 标签?

.net - 等待 UDPClient.ReceiveAsync 超时

tcp - Go TCP 超时不起作用?