Jquery Draggable - Wie erstelle ich ein neues ziehbares div im laufenden Betrieb, das dann gezogen werden kann?

8

Ich erstelle einen Tagesplaner, der jquery, dragable und droppable verwendet.

Wenn ein Job aus der nicht zugewiesenen Spalte in einen Stundenbereich gezogen wird, wird das ursprüngliche ziehbare Element entfernt und ein neues div wird mit den Jobdetails in die Seite eingefügt.

Dieser neu erstellte div-Block von Code enthält alle Parameter, um ihn ziehbar zu machen. Wenn sie beim Laden der Seite gerendert werden, sind diese zugewiesenen Jobs ziehbar.

Es ist nur, wenn sie im laufenden Betrieb erstellt werden, indem JavaScript verwendet wird, was sie daran hindert, herumgeschleppt zu werden.

Wenn ich diese neuen div Tags im laufenden Betrieb mit Javascript erstelle, muss ich etwas tun, um der jQuery mitzuteilen, dass diese neuen Elemente gezogen werden sollen?

(Vielen Dank im Voraus wie immer)

Schritte

  • Wir haben einen div-Container mit einer Liste von Jobs (divs) darin. #unassignedjobs ist das übergeordnete div für diese Jobs, mit den folgenden Jobs innerhalb, #jobN, # jobN2, # jobN3
  • Wir haben einen anderen Bereich, in den wir diese Gegenstände legen können, und in diesem Bereich befindet sich ein Container für die Anzeige von Aufträgen, pro Person, können wir diese # person1 und # person2 aufrufen.
  • Ziel ist es, einen Job aus der nicht zugewiesenen Jobliste zu ziehen und ihn in die Personenlisten der Jobs
  • zu legen
  • In der Minute, wenn ich das mache, html innerhalb von # person1 aktualisieren, wenn ein Element gelöscht wird, und ajax / php verwenden, um die Liste der Jobs für diese Person neu zu erstellen (# person1 ) und repopulate # person1 mit innerHTML .
  • Jedes Mal, wenn eine Seite von php erstellt wird, sind alle Jobs innerhalb von # person1 vorhanden, wenn jquery aktiviert ist, sodass sie ziehbar sind. Nur wenn die Aktualisierung und Neuauffüllung von innerHTML ausgeführt wird, können die Elemente (#jobN oder # jobN2) nicht gezogen werden

    var createdContent = httpRequest.responseText;

    jobcolp.innerHTML = createdContent;

Hoffentlich macht dies das Problem etwas klarer.

    
Matt 18.12.2009, 11:28
quelle

2 Antworten

4

Einfach ziehbar auf das neu erstellte DIV anwenden. Wenn das DIV genau dasselbe ist, außer der Position, könnten Sie es auch nicht neu erstellen, sondern es einfach neu positionieren. Dies würde alle seine Handler behalten.

%Vor%

oder

%Vor%     
tvanfosson 18.12.2009, 11:54
quelle
2

Anstatt das neue div zu ersetzen, deaktivieren Sie das Ziehen nicht.

%Vor%

Wenn Sie möchten, dass es ziehbar ist, verwenden Sie dieses

%Vor%     
Gausie 18.12.2009 11:34
quelle

Tags und Links