Применение .animate () к строке, добавленной с помощью .after () - PullRequest
2 голосов
/ 10 ноября 2011

Итак, в настоящее время я использую следующее:

$.ajax({
    type: "GET",
    url: "file.php",
    success: function(html) {
        $("#tableRow").after(html);
    }
});

, которое аккуратно добавляет новую строку (или строки) в существующую таблицу.file.php возвращает:

<tr><td>stuff</td></tr>

Я могу добавить одну строку за раз.Я пытаюсь анимировать только что добавленную строку, например:

$("#tableRow").after(html).animate({ backgroundColor: "#bce4b4" }, "fast")

, но это выделяет строку, после которой я добавляю новую строку.Я не могу заставить его применить только к этому новому ряду.Как я могу это сделать?

ОБНОВЛЕНИЕ :

На основе полученных ответов я собрал это: http://jsfiddle.net/jreljac/5ctpc/3/, где я делаю следующее:

$("<tr><td>2 1</td><td>2 2</td></tr>").insertAfter("#tableRow").animate({
    backgroundColor: "#bce4b4"
}, "slow");

(я заменил файл file.php на текст "), и это, похоже, не работает. Создает строку, но не анимирует. Я что-то упустил?

Ответы [ 3 ]

5 голосов
/ 10 ноября 2011

Пользователь insertAfter вместо. Затем он оживит правильный ряд.

$(html).insertAfter("#tableRow").animate(...
1 голос
/ 10 ноября 2011

Попробуйте использовать insertAfter () вместо

$(html).insertAfter('#tableRow').animate({ backgroundColor: "#bce4b4" }, "fast");
0 голосов
/ 10 ноября 2011

Это будет делать то, что вы хотите:

$(html).insertAfter('#tableRow').animate({ backgroundColor: "#bce4b4" }, "fast")

Хотя 'html' - это просто строка, вы все равно можете обернуть его в $(), чтобы превратить его в объект jQuery.

...