jQuery 防止多次点击,直到动画完成

标签 jquery

目前我有一些设置,用户单击图像并根据该图像,div 将淡入/淡出。

如果用户疯狂地同时点击一堆图像,则会加载多个 div,而不仅仅是最后请求的一个。

我试图在这里说明我的问题。 http://jsfiddle.net/BBgsf/

单击任何这些图像都会加载带有编号的相应 div。但是,如果您在动画完成之前单击不同的图像,它也会加载其他 div。

jQuery

$(".flow-chart img").click(function () {

    var div_class = $(this).data("class");

    $(".hide_show:visible").fadeOut('slow', function() {
        $("."+div_class).fadeIn("slow");
    });

});

HTML

<div class="1 hide_show">1</div>
<div class="2 hide_show" style="display: none">2</div>
<div class="3 hide_show" style="display: none">3</div>

如何防止加载多个 div 而不是一次加载一个?

最佳答案

虽然你已经得到了答案..你可以检查是否有任何元素使用 :animated 进行动画处理。 选择器..如果有则返回 false

$(".flow-chart img").click(function() {
    if ($(".hide_show").filter(':animated').length > 0) {
        return false;
    }
    var div_class = $(this).data("class");    
    $(".hide_show:visible").fadeOut('slow', function() {
        $("." + div_class).fadeIn("slow");
    });

});​

http://jsfiddle.net/FaKBs/

关于jQuery 防止多次点击,直到动画完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13709880/

相关文章:

javascript - 模态弹出窗口的自动完成功能不起作用

JQuery:隐藏div失败时做某事

javascript - 在浏览器窗口关闭前显示 jQuery 弹出窗口

javascript - 如何将类和文本替换为按钮

javascript - Jquery 使用电子邮件验证多个输入

jquery - 使用 jquery 在单击时更改文本区域内容

android - jquery忽略错误和成功json代码

javascript - 什么数据类型是 $ ('#checkbox' ).attr ('checked' )

javascript - 正则表达式中的 "?-mix:"是什么意思

javascript - 将 javascript 参数字传递给自定义函数