Запустите анимацию jQuery с помощью live () - PullRequest
1 голос
/ 27 июля 2010

У меня есть анимация jQuery, которая не работает.Я думаю, что проблема возникает из частей, которые являются динамическими элементами.

Можно ли вызвать метод live() с помощью animate()?

Вот что я до сих пор зашёл:

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

Ответы [ 4 ]

1 голос
/ 27 июля 2010

Полагаю, у вас есть какой-то триггер для анимации?

Введенная вами строка кода будет запускать анимацию всякий раз, когда в коде будет достигнута строка кода - вам кажется, что вы хотите связать анимацию с элементом и выполнить ее позже.

Попробуйте, например,

$('.tls').on('click', function(ev) { 
    $(this).animate({left: '-=50px'}, 'slow'}); 
    // Add any necessary event handling here, for example
    ev.preventDefault();
    ev.stopPropagation();
});
1 голос
/ 27 июля 2010

LiveQuery очень хорош для работы с динамическими элементами.

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

0 голосов
/ 15 октября 2011

Была такая же проблема.Нужно жить и оживлять без триггера.Я написал небольшую работу вокруг.Я исправил это с помощью рекурсивной функции.Вот мой пример:

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

Надеюсь, что смогу помочь.

0 голосов
/ 27 июля 2010

Как вы делаете живой звонок?Может быть, вы должны использовать вместо делегата: http://api.jquery.com/delegate/

...