In meinem aktuellen Markup gibt es ein einzelnes <div>
, das als Container für die Vorschau von Elementen dient, und ich möchte es mit jQuery UI ziehbar machen.jQuery Draggable mit dynamisch aufgebautem Selektor
die Grundlagen aus dem Tutorial Folgen, da ich noch nie so etwas getan hat, es nur eine Frage der wäre:
$('#preview').draggable();
Und in der Tat, es war. Ich habe es hinzugefügt und es hat funktioniert.
Allerdings brauche ich einen etwas spezifischeren Selektor, damit andere Dinge, die den gleichen Vorschaucontainer teilen, auch nicht ziehbar werden.
So, während die Vorschau Bau habe ich ein class
die Gruppe zu identifizieren, das heißt:
$('#preview').removeClass().addClass('group_1');
Und dann habe ich das gleiche mit der anderen Vorschau löst mit verschiedenen Saiten (dh group_2, group_3 ...)
Bei der Überprüfung des Vorschauelements in Chrome funktioniert es einwandfrei: Alle Klassen werden aus dem Element entfernt und das neue hinzugefügt.
denken, dass alles, was ich brauchte, war, änderte ich dann die jQuery UI Selector:
$('#preview.group_1').draggable();
Und es funktioniert nicht mehr.
Gibt es etwas Spezifisches, auf das ich achten sollte?
Ich schätze die Antwort, aber anscheinend wurde der Code korrekt geschrieben, aber obwohl ich im Inspector sah, dass das Element '# preview' die verschiedenen Gruppenklassen korrekt löste und erhielt, anscheinend die' draggable() 'Methode war nicht ... "beobachtete" diese Änderungen. Anstatt also alle Routinen auszulösen, die in eine Funktion (einschließlich des Aufrufs von 'draggable()') am Anfang des Codes eingepackt sind, habe ich sie direkt nach dem Hinzufügen dieser Klassen zum Element aufgerufen und es hat funktioniert. – user5613506
Das macht Sinn. Wenn der Dialog initiiert wird, fügt er Klassen hinzu: 'ui-dialog', wenn Sie alle entfernen, müssen Sie den Dialog erneut initialisieren. – Twisty
@ user5613506 hat ein Update hinzugefügt, das helfen könnte. – Twisty