使用live()触发jQuery动画

时间:2010-07-27 07:06:00

标签: jquery live jquery-animate

我有一个无效的jQuery动画。我认为问题来自于动态元素的部分。

是否可以使用live()调用animate()方法?

这是我到目前为止所做的事情:

$(".tls").animate({"left": "-=50px"}, "slow");

4 个答案:

答案 0 :(得分:1)

LiveQuery非常适合处理动态元素。

http://docs.jquery.com/Plugins/livequery

答案 1 :(得分:1)

我假设你有动画的某种触发器?

您提供的代码行将在代码中到达代码行时运行动画 - 您似乎想要的是将动画绑定到元素,然后再执行。

尝试,例如,

$('.tls').on('click', function(ev) { 
    $(this).animate({left: '-=50px'}, 'slow'}); 
    // Add any necessary event handling here, for example
    ev.preventDefault();
    ev.stopPropagation();
});

答案 2 :(得分:0)

你是如何进行实时通话的?也许您应该使用委托:http://api.jquery.com/delegate/

答案 3 :(得分:0)

有同样的问题。需要现场和动画,没有触发器。我写了一点工作。我用递归函数修复它。这是我的例子:

    $("#drops").html('<div class="drop-item item"></div>');

    adddrop();

    function adddrop() {
        $(".drop-item").animate({
            top: "+=90%"
        },2500,"easeInQuad", function() {
            if (parseInt($(".drop-item").css('left')) == parseInt($("#paddle").css('left'))) 
            {
                $("#drops").html('<div class="drop-item item"></div>');

                adddrop();
            } 
            else
            {
                alert('fail');
            } 
        });
    }

希望我能提供帮助。