3

Ich verwende das select2 jQuery Plugin (V4) und von dem, was ich sehe, haben sie kein onInitialized Ereignis; aber ich muss einen Code ausführen, nachdem es initialisiert wurde.Prüfen, ob ein Plugin in jQuery initialisiert wurde?

Von Initialisiert Ich meine, dass es abgeschlossen ist und dass alle damit verbundenen Elemente jetzt bereit sind.

Ich habe gesehen this question, aber keine der Antworten scheint das Problem der kontinuierlichen Überprüfung zu adressieren, bis es verfügbar wird; Wie wäre es, wenn es beim ersten Mal nicht vorhanden wäre, dann würde der Code, den Sie ausführen müssten, nicht ausgeführt werden.

Ich dachte an setInterval mit etwas wie dem oben genannten, aber war nicht sicher, ob es einen besseren Weg gab?

+0

Überprüfen Sie einfach, was Sie mit "initialisiert" meinen: Möchten Sie überprüfen, dass Select2 heruntergeladen und als jQuery-Funktion registriert ist, bevor Sie es mit '$ ('select') aufrufen. Select2();'? Oder möchten Sie überprüfen, dass '$ ('select'). Select2();' abgeschlossen ist, bevor Sie etwas anderes tun? – Lesley

+0

@Lesley Sorry, ich meine * abgeschlossen *. Ich habe meine Frage aktualisiert. – Brett

+0

Bei der Frage, die Sie verlinkt haben, wird geprüft, ob ein Plugin heruntergeladen und als jQuery-Funktion registriert wurde. Wenn Sie etwas tun möchten, nachdem der Aufruf von 'select2()' abgeschlossen ist, war mein erster Gedanke: Warum nicht einfach den Code für die Sachen, die Sie post-init nach dem Aufruf von Select2 machen wollen? '$ ('# my-select'). Select2(); console.log ('Dies sollte passieren, nachdem select2() fertig ist'); ' – Lesley

Antwort

0

Die einzige Möglichkeit, wie Sie async gehen können, ist, wenn Sie Remote-Daten abrufen, so dass Sie Callback in diesem Ajax injizieren können.

Wenn Sie mehr Ajax-Aufrufe haben verwenden latente:

var deffered1 = $.Deferred(); 

In Ihren Ajax-Aufrufen nach success und error den folgenden Code verwenden, um diese Anrufe zu lösen.

complete:function(){ 
    deffered1.resolve() 
} 

Und für Veranstaltungen abonnieren:

$.when(deffered1, deffered2).done(function() { 
    // your initialized actions 
}) 
0

Wenn Sie mehr als 1 select Elemente auf Ihrer Seite haben, die Sie folgende verwenden können, dann select2 dropdown konvertiert werden muss: Multi Select version

Wenn Sie nur eine einzige Auswahl auf der Seite haben, können Sie mit folgenden Optionen gehen: Single Select option:

Hoffe es hilft.

Verwandte Themen