代码之家  ›  专栏  ›  技术社区  ›  Peter

使用live()触发jQuery动画

  •  1
  • Peter  · 技术社区  · 14 年前

    可以打电话给警察吗 live() animate()

    以下是我迄今为止所做的:

    $(".tls").animate({"left": "-=50px"}, "slow");
    
    4 回复  |  直到 13 年前
        1
  •  1
  •   Tomas Aschan    12 年前

    我猜你有什么动画片的导火索?

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

    举个例子,

    $('.tls').on('click', function(ev) { 
        $(this).animate({left: '-=50px'}, 'slow'}); 
        // Add any necessary event handling here, for example
        ev.preventDefault();
        ev.stopPropagation();
    });
    
        2
  •  1
  •   Māris Kiseļovs    14 年前

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

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

        3
  •  0
  •   alcuadrado    14 年前

    你是怎么打电话的?也许你应该改用delegate: http://api.jquery.com/delegate/

        4
  •  0
  •   Flexo - Save the data dump sunny moon    13 年前

    我也有同样的问题。需要现场和动画没有触发。我写了一篇小文章。我用递归函数修复了它。下面是我的例子:

        $("#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');
                } 
            });
        }