Jquery 滑动每次点击都会有更多延迟

发布于 2024-10-05 05:27:50 字数 1119 浏览 4 评论 0原文

如果您在这里登录 http://freeri.freehostia.com/utanme/image.php 用户名/密码:Demo123 然后按任何图像,当它滑动时单击主图像,这样做几次 突然你会发现每次滑动的时间越来越长。

我使用的代码

$(function(){
    $('.slide:last-child img').live('click', function() {
        $('.slide:first-child').animate({
            marginLeft: '0'
        },500);
        return false;
    });
    $('.slide .img').click(function(){
        var img = $(this).find('a').attr('href');
        var title = $(this).find('h2').text();
        var desc = $(this).find('p').text();
        $('.slide:last-child img').attr('src',img);
        $('.slide:last-child h2').text(title);
        $('.slide:last-child #cont').text(desc);
        $('body').prepend('<div id="cover"><img src="./images/loader.gif"/></div>');
        $('.slide:last-child img').load(function(){
            $('#cover').detach();
            $('.slide:first-child').animate({
                marginLeft: '-900px'
            },500);
        });
        return false;
    });
});

我在这里缺少什么? 任何援助将不胜感激

If you login here
http://freeri.freehostia.com/utanme/image.php
Username/password:Demo123
and press any image and when it slides click the main image, do that a couple of times
and suddently you'll notice that the sliding takes longer and longer for each time.

the code im using

$(function(){
    $('.slide:last-child img').live('click', function() {
        $('.slide:first-child').animate({
            marginLeft: '0'
        },500);
        return false;
    });
    $('.slide .img').click(function(){
        var img = $(this).find('a').attr('href');
        var title = $(this).find('h2').text();
        var desc = $(this).find('p').text();
        $('.slide:last-child img').attr('src',img);
        $('.slide:last-child h2').text(title);
        $('.slide:last-child #cont').text(desc);
        $('body').prepend('<div id="cover"><img src="./images/loader.gif"/></div>');
        $('.slide:last-child img').load(function(){
            $('#cover').detach();
            $('.slide:first-child').animate({
                marginLeft: '-900px'
            },500);
        });
        return false;
    });
});

what am i missing here?
any aid would be greatly appreciated

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

半夏半凉 2024-10-12 05:27:50
$('.slide:first-child').stop(true,true).animate({ marginLeft: '-900px' },500});

关于停靠点:
http://api.jquery.com/stop/

此外,我还遇到了实时和加载问题同一元素上的事件(并不是说这就是导致您出现问题的原因。)

可能不合适,但如果仍然有问题,请尝试在后续加载绑定之前删除实时事件。
http://api.jquery.com/die/

编辑:请注意,这可能对性能不利(不断删除并重新添加实时绑定)。我并不是说一直这样做,但它可能有助于查明您的问题。

$('.slide:first-child').stop(true,true).animate({ marginLeft: '-900px' },500});

About stop:
http://api.jquery.com/stop/

Additionally I've had issues with live and load events on the same element (not saying it's what is causing your problem here.)

Might be not appropriate, but if you still have issues, try removing the live event before your subsequent load bind.
http://api.jquery.com/die/

Edit: Note it's probably bad for performance (to continuously remove and re-add the live binding). I do not mean do this all the time but it may help pinpoint your problem.

迷鸟归林 2024-10-12 05:27:50

尝试调用 stop(true, true);当动画据称结束时,后台可能会进行一些奇怪的计算,这些计算会扰乱回调的设置方式。我不知道这是否有效,但值得一试。 :)
-托马斯

Try calling stop(true, true); when the animations allegedly end, there may be some strange calculations going on in the background that mess around with how the callback is set up. I have no idea if this will work, but it is worth a try. :)
-Thomas

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文