Rechtsklickmenü / Kontextmenü

  • Mal wieder eine Frage ;)

    Zur Lösung..

    Ich erweitere das rechts-Klick Menü mit zwei punkten:

    HTML
    <div id="1" contextmenu='rmenu'>Div1</div>
    <div id="2" contextmenu='rmenu'>Div2</div>
    
    
    
    
    <menu type="context" id="rmenu">
    	<menuitem label="punkt1" class="s_class" id="s_1"></menuitem>
    	<menuitem label="punkt2" class="s_class" id="s_2"></menuitem>
    </menu>


    Wenn ich jetzt Klicks auf den Punkt abfange:

    JavaScript
    $(".s_class").click(function() {
    
    
    
    
    }


    Weiß ich nicht, wie ich herausfinden soll, auf welches Element der Rechtsklick gemacht wurde.
    Weiß jemand, wie?

    4 Mal editiert, zuletzt von wolf (9. März 2014 um 19:33)

  • kann kein jquery
    aber von der Logik her sollte in die click func das object oder ein ident rein kommen.
    also evtl sowas:

    JavaScript
    $(".s_class").click(function(this) {
     alert(this.id)
    }
  • Ja dann bekäme ich die Id des geklickten Menü Eintrags ^^ :D
    Genau da scheiter ich.

    Und man darf auch:

    JavaScript
    $(".s_class").click(function() {
      alert(this.id);
    }


    :)

    Edit:
    Das gibt dann aus: s_1 oder halt s_2
    Ich will aber 1(id vom div) oder 2

  • JavaScript
    $(".s_class").click({
     var onclick = $(this);
    }


    Damit würde die Variable onclick das Element repräsentieren, auf das geklickt wurde, soweit ich weiß.
    Und dann die relevanten Elemente einfach mit onclick.element ansprechen...

  • Hmm jetzt bekomme ich die Id, von dem Element das vorher mit LINKS angeklickt wurde :/
    Aber denke das lässt sich noch modifizieren,
    << war n bug. Man bräuchte sowas wie beforethis oder so ^^

    The Scout, ja genau, this repräsentiert das aktuelle obj. was allerdings der Kontextmenü Eintrag ist und nicht das Element auf das der Rechtsklick gemacht wurde.

    2 Mal editiert, zuletzt von wolf (9. März 2014 um 15:59)

  • jQuery arbeitet doch mit den CSS Selektoren:

    CSS
    .s_class[label="punkt1"]

    So sollte das theoretisch möglich sein, ich weiß nicht welche Version du nutzt und in wie weit das dort unterstützt wird.

  • Nein nein, ihr versteht was falsch ;) ich will nicht herausfinden auf welchen Kontextmenü Eintrag geklickt wurde, sondern, auf welches Element der rechts klick ausgeführt wurde :D

  • Für mich verliert das gerade jeglichen Faden, was für ein Kontext Menü hast du erstellt, nutzt du das jQuery contextmenu Plugin oder wie hast du das gelöst?

  • Okay und wenn ein Punkt angeklickt wird musst du wissen auf welches Element der letzte Rechtsklick ging?

    Das wäre ein möglicher Lösungsansatz:

    So kannst du jederzeit lastClick abfragen welches Element zuletzt mit Rechtsklick gedrückt wurde (sofern es eine id hat, sonst kriegst du false oder eben das vorletzte :love:

  • Genau. Und da brächte man sowas wie last.this

    Ahhh, du hast nachgetragen, super mein last.this gibt es also doch :D
    Danke!

    2 Mal editiert, zuletzt von wolf (9. März 2014 um 18:03)

  • Ne keine Ahnung.. ja doch natürlich, das ist wie document.onclick ein ganz normaler Eventhandler nur wird dieser halt ausgeführt wenn das Kontextmenü mit einem Rechtsklick aufgerufen wird.

  • Ganz einfach: Das Element worauf der Klick ging hat einfach keine ID :) Versuch mal das .id weg zu lassen und guck was raus kommt, sollte ein Objekt werden.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!