2016-07-28 11 views
0

Ich habe ein Problem, bei dem ich das Kontextmenü auf einem Raster initialisiere, aber ich habe eine andere Funktion auf der Seite, die beim Klicken das Raster ausblendet Zurück das Menü funktioniert nicht mehr, ich denke, dass möglicherweise eine Neuinitialisierung mein Problem beheben wird.Reinitialisieren oder überprüfen, ob das Menü initialisiert wird

Wie würde ich das Menü neu initialisieren? Wenn es keine "Reinitialisierung" -Funktion gibt, wie kann ich überprüfen, ob das Menü erstellt wurde, bevor ich es zerstöre und ein anderes mache?

Ich weiß, ich kann es zerstören, aber ich kann nicht herausfinden, wie zu sagen, ob es zuerst initialisiert wird?

JS:

if(order.contextmenu("initialized")) 
    order.contextmenu("destroy"); 
+0

Ich konnte das nie herausfinden, also entschied ich mich, ein anderes Kontextmenü-Plugin mit besserer Unterstützung zu verwenden. – Blindsyde

Antwort

0

Das Menü kann (wieder) initialisiert werden - wie jedes jQuery UI wid erhalten - von

$(selector).contextmenu({...}) 

Aufruf aber normalerweise sollte dies nicht notwendig sein:

Wenn das Raster nur versteckt war (aber nicht entfernt), sollte das Menü einfach, sobald das Gitter hergestellt wird wieder sichtbar weiterarbeiten .

Wenn das Gitter entfernt und neu erstellt, dann sollte der Wähler etwas übergeordnete Element übereinstimmen, die nicht entfernt ist, zum Beispiel wie folgt aus:

$(document).contextmenu({ 
    delegate: ".grid-cell", 
    ... 
}) 

Dann wieder das Menü wird weiter arbeiten.

+0

Das Gitter (jqGrid) ist ausgeblendet und dann werden die Daten neu geladen, ich habe ein Feld, wo Sie Daten eingeben und drücken, lädt das Raster mit Zeilen und dann klicken Sie zurück in das Feld, um verschiedene Daten einzugeben, auf der das Raster versteckt Wenn du auf Laden klickst zeigt das Grid aber mit neuen Daten und das Kontextmenü funktioniert nicht mehr, ich habe beide Dinge ausprobiert die du vorgeschlagen hast bevor ich Hilfe gepostet habe und keiner funktioniert. Sehr merkwürdig, aber ich habe Plugins geändert und es funktioniert jetzt großartig. – Blindsyde

Verwandte Themen