2010-01-05 3 views
0

Я новичок в jQuery, и мне нужна помощь в моем маленьком проекте. Я делаю drag & drop list для перемещения видеоклипов и подсчета их времени при падении на целевую цель ... и это работает нормально ... Но главная проблема заключается в том, что я хочу сортировать позиции в целевом div. Я не знаю, как сделать все элементы обновления времени с помощью sortable-> change event. Я хочу, чтобы «время» появлялось после каждого div, как показано в моем коде. Это время, когда клип должен начинаться. Я считаю, что мне нужно очистить все атрибуты с помощью $("b").remove(); (я только хочу обновить время), а затем использовать функцию $.each();, чтобы перечитать все элементы ant, а затем добавить к ним «время». Может ли кто-нибудь помочь мне в этом?Обновить атрибуты элемента при сортировке

Вот мой код: http://lukasz.webh.pl/test.html

Чтобы пояснить, что я хочу добиться: Например позволяет сказать, что это будет интернет-радио расписание программ станции. На левой руке у нас есть доступные программы. Мы выбираем программу, которую хотим добавить в расписание, и мы перетаскиваем ее в пункт назначения DIV. Затем скрипт собирает свое время и показывает, когда он должен начинаться. Таким образом, каждый элемент (время) должен быть суммой предыдущих элементов. И теоретически работать, пока мы не хотим, чтобы изменить позицию программы ...

+0

Значит, вам нужно только один раз появиться в конце вашего списка? – MDCore

+0

Нет. Я хочу, чтобы время появлялось после каждой записи в виде суммы o предыдущих времен (как в моем коде, когда вы отбрасываете элемент в правый div). Но я хочу также сортировать элементы, и я не знаю, как обновлять каждое значение времени элемента. Например, у нас есть два клипа (или радиопрограммы). Сначала две минуты и вторая. В этом порядке второй начнется в 08:02 (начиная с 08:00). Но когда мы поменяем их, второй начнется в 08:05. – PsychoX

ответ

1

попытки заменить эту строку

$(this).append("<b>" + czas + " </b>"); 

с

var timefield = $(this).find("b"); 
if(timefield.length){ 
    timefield.html(czas); 
}else{ 
    $(this).append("<b>" + czas + " </b>"); 
} 
+0

Спасибо за ответ. К сожалению, я хочу, чтобы «время» появлялось после каждого div, как показано в моем коде. Это время, когда клип должен начинаться. Я только хочу обновить атрибут «время» при сортировке, потому что, если мы изменим положение клипа, время его начала также изменится. – PsychoX

0

Предполагая, что вы хотите иметь то же самое время для всех элементов, почему не выпуск:

$('b').html(newTime); 

Тогда вы можете обновить все сразу.

+0

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