Переместить строку таблицы в динамически созданную строку?

Когда я динамически создал строку таблицы с помощью Jquery. Я обнаружил, что не могу переместить новую созданную строку с помощью js. С другой стороны, я могу перемещать уже созданные строки с помощью Jquery. См. демонстрацию на сайте jsfiddle.net.

Какие-либо предложения?

<код>


person Community    schedule 08.12.2010    source источник


Ответы (1)


Вы можете использовать метод live():

$(".up,.down").live('click',function(){
    var row = $(this).parents("tr:first");
    if ($(this).is(".up")) {
        row.insertBefore(row.prev());
    } else {
        row.insertAfter(row.next());
    }
});

http://jsfiddle.net/TdsLj/3/

По определению live() будет «прикреплять обработчик к событию для всех элементов, соответствующих текущему селектору, сейчас и в будущем».

person jyoseph    schedule 08.12.2010
comment
Спасибо, джосеф. Не могли бы вы объяснить, почему я не могу поймать событие click в исходном коде? Почему не удается отловить событие из будущего элемента? Спасибо! - person ; 08.12.2010
comment
Потому что во время загрузки страницы все ссылки .up и .down имеют обработчики. Когда вы добавляете еще один .up и/или .down в дом, у них нет обработчиков. Использование live() будет соответствовать любым существующим или будущим элементам (будущее значение, добавление в дом, как вы). Надеюсь, это поможет! - person jyoseph; 08.12.2010