Перемещаемый jQuery - Как я создаю новое перемещаемое отделение на лету, которое может затем быть перетащено?

Я создаю дневного планировщика, использующего jQuery, перемещаемый и сбрасываемый.

Когда задание перетаскивается из неназначенного столбца во временной интервал часа, исходный перемещаемый объект удален, и новое отделение размещается в страницу с деталями задания.

Этот недавно созданный блок кода отделения, имеет все параметры в нем для создания его перемещаемым. Когда это представляется на загрузке страницы, эти присвоенные задания перемещаемы.

Это только, когда они создаются на лету с помощью JavaScript, что-то происходящее, который мешает им быть перетащенным о.

Когда я создаю эти новые теги Div на лету с JavaScript, есть ли что-то, что я должен сделать, чтобы сказать jQuery, что эти новые объекты предназначены, чтобы быть перетащенными?

(заранее спасибо как всегда)

Шаги

  • У нас есть контейнер отделения со списком заданий (больше отделений) в нем. #unassignedjobs является родительским отделением для этих заданий, со следующими заданиями внутри, #jobN, #jobN2, #jobN3
  • У нас есть другая область, в которую мы можем отбросить эти объекты, и в этой области контейнер для отображения заданий, на человека, позволяет, называют эти #person1 и #person2.
  • Цель состоит в том, чтобы перетащить задание из неназначенного списка заданий и поместить его в списки людей заданий
  • В минуту, когда я делаю это, я обновляю весь HTML в #person1, когда объект отбрасывается и использующий ajax/php, чтобы переделать список заданий для этого человека (#person1) и повторно заполнить #person1 с помощью innerHTML.
  • Каждый раз, когда страница создается из php, любые задания внутри #person1 присутствуют, когда jQuery активируется, делая их перемещаемыми. Это только, когда обновление и вторичное заселение innerHTML, работал, объекты (#jobN или #jobN2) не могущий быть перетащенным

    var createdContent = httpRequest.responseText;

    jobcolp.innerHTML = createdContent;

Надо надеяться, это делает проблему немного более более ясной.

8
задан Matt 18 December 2009 в 12:14
поделиться

2 ответа

Просто примените перетаскивание к вновь созданному DIV. Если DIV точно такой же, за исключением позиции, вы также можете не воссоздавать его, а просто изменить его положение. Это сохранит все его обработчики.

 // remove, reposition, reapply handlers
 $('#jobN').remove().appendTo('#dayViewN').draggable();

или

 // reposition, retain handlers
 $('#jobN').appendTo('#dayViewN');
4
ответ дан 5 December 2019 в 22:19
поделиться

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

$(element).draggable('disable');

Затем, если вы хотите, чтобы его можно было перетаскивать, используйте этот

$(element).draggable('enable');
2
ответ дан 5 December 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: