jQuery Kontextmenü - Finden, welches Element ausgelöst hat

8

Ich versuche, eine Kontextmenüoption für eine Seite von mir zu schreiben. Grundsätzlich wird mit der rechten Maustaste ein Div angeklickt, es erscheint ein Optionsmenü, mit dem Aufgaben ausgeführt werden können.

Mein Problem ist es, das ursprüngliche Element zu finden, das alles ausgelöst hat (dh das div, auf das mit der rechten Maustaste geklickt wurde).

Mein jQuery-Code ist mehr oder lesS:

%Vor%

- Also - ich kann sehen, welches Element das Ereignis erstellt hat, wenn der erste Rechtsklick passiert. Aber nicht, wenn auf den Menüpunkt geklickt wird.

Ich habe daran gearbeitet, etwas zusammen zu fummeln, indem ich das Element in eine verborgene Textbox geschrieben habe, als es mit der rechten Maustaste angeklickt wurde. Dann lese ich es, wenn eine der Optionen angeklickt ist, und entferne es, wenn das Menü geschlossen wird. Scheint aber nicht der ideale Ansatz zu sein - und ich habe das Gefühl, etwas Grundlegendes zu vermissen.

Hoffen Sie, was ich versuche zu tun. Ich kann auf Anfrage ein vollständigeres Beispiel veröffentlichen.

    
jb. 13.12.2010, 14:51
quelle

3 Antworten

6

Sie könnten die Methoden jQuery Datenspeicherung in Erwägung ziehen.

In Ihrem Kontextmenü-Code können Sie setzen:

%Vor%

Wenn Sie dann auf das Element verweisen möchten, das den Klick ausgelöst hat, können Sie Folgendes tun:

%Vor%

Und setzen Sie originalElement in die jQuery-Funktion $() , um auf die jQuery-Klasse zuzugreifen. Es spielt keine Rolle, wo Sie die Daten ablegen, da jedem DOM-Element Daten zugeordnet werden können. Sie können alles speichern - im obigen Beispielcode speichere ich das HTMLElement raw (nicht jQueryified), aber Sie können das auch speichern, wenn Sie möchten.

Sehen Sie hier ein kleines Beispiel: Ссылка

    
Jonathon Bolster 13.12.2010, 15:07
quelle
2

Ich füge ein verstecktes Feld hinzu und finde es dann basierend auf dem Klick, wie folgt:

%Vor%

dann mit JQuery

%Vor%     
Jason 13.12.2010 14:56
quelle
2

Ich bin hier ein wenig zu spät zur Party, aber ich habe festgestellt, dass das aktive Element beim Erzeugen des Kontextmenüs die Klasse "context-menu-active" erhält. Dies kann nur in neueren Versionen sein. Ich benutze das Kontextmenü 1.6.6.

Einfach hinzufügen:

%Vor%

zum Kontextmenü-Handler. Hier wird es mit dem Beispielcode kombiniert.

%Vor%     
NAZ 18.09.2015 22:50
quelle

Tags und Links