Das entfernen und erneute Anwendung Widget auf ein Element
Habe ich ein problem. Ich beziehe das widget auf select
element. Wenn ich Neuladen der gleichen select
element Werte, ich bin entfernen Sie das widget auf die select
element und neu anwenden. Aber während erneut das widget auf dem gleichen element, werden die änderungen nicht reflektieren.
Unten ist der HTML-select-Anweisung:
<select id="countries" class="multiselect" multiple="multiple" name="countries">
<option value="USA">United States</option>
...
</select>
Anwenden das widget auf dem gleichen element:
function applyWidget(){
$(".multiselect").multiselect();
}
Sobald das widget angewendet wird, es ist die Schaffung eines div
mit class=".ui-multiselect"
.
Entfernen Sie die widget-Klasse:
function removeWidget(){
$(".ui-multiselect").remove();
}
Aufruf der applyWidget()
Methode für die erste Zeit gut funktioniert. Beim Aufruf der zweiten Zeit nicht funktioniert. Wie kann ich laden Sie das widget auf das element?
InformationsquelleAutor user1388314 | 2012-05-22
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ersten, die Ihr widget muss einen
destroy
Verfahren zur Verfügung steht, und wie Sie das tun, hängt davon ab, ob Sie mit jQueryUI 1.8 und unten oder jQueryUI 1.9 und höher.Für diese Beispiele, ich mache die Annahme, dass Sie verweisen auf die multiselect -
div
mit dem folgenden code:Wenn Sie mit jQuery 1.8, das widget definieren sollte
destroy
:Ansonsten unter jQuery 1.9+, Sie brauchen, um zu definieren
_destroy
:Beachten Sie, dass Sie enthalten nur eine der beiden oben genannten Methoden, je nach Ihrer version von jQueryUI, und dass die 1.9 version ist, vorangestellt von einem Unterstrich
_
. Unter jQueryUI 1.9, definieren Sie nicht zerstören, ohne den Unterstrich, da der widget-factory definiert, die Methode, und Sie überschreiben (und brechen) die Methode.Sobald dies abgeschlossen ist, müssen Sie den code ändern, so dass Sie "zerstören" das widget, bevor Sie neu es.
Müssen Sie zerstören das widget oder es wird nicht erneut binden.
.multiselect
, nicht.ui-multiselect