当用户点击太快时,我如何才能阻止这个函数发生两次?
$(document).ready(function() {
    $(".jTscroller a").click(function(event) {
        event.preventDefault();
        var target = $(this).attr("href");
        $("#photo").fadeTo("fast", 0, function() {
            $("#photo").attr("src",target);
            $("#photo").load(function() {
                $("#photo").fadeTo("fast", 1);
            });
        });
    });
});我的问题是,如果用户点击太快,元素将不会淡入,它只会保持隐藏。
问题并不是我想的那样。当我点击相同的缩略图时,它会尝试加载相同的图像,并永远保持加载状态。.stop()答案确实修复了双重动画,所以我接受这个答案,但我的解决方案是检查最后单击的项是否是当前显示的项。新脚本:
$(document).ready(function() {
    $(".jTscroller a").click(function(event) {
        event.preventDefault();
        var last = $("#photo").attr("src");                 
        var target = $(this).attr("href");
        if (last != target) {
            $("#photo").stop().fadeTo("fast", 0, function() {
                $("#photo").attr("src",target);
                $("#photo").load(function() {
                    $("#photo").fadeTo("fast", 1);
                });
            });
        };
    });
});发布于 2012-08-01 22:06:53
你在你的描述中用了正确的词。使用stop()
$("#photo").stop().fadeTo("fast", 0, function() {发布于 2012-08-01 22:07:20
您可以使用setTimeout函数在两次单击抓取之间进行延迟。我的意思是,第二次点击只有在一段时间后,在第一次点击之后才会被处理。它设置两次单击之间的间隔。
发布于 2012-08-01 22:07:22
我相信你要找的是.stop() http://api.jquery.com/stop/
$("#photo").stop(false, false).fadeTo()https://stackoverflow.com/questions/11761011
复制相似问题