JQuery on('contextmenu') für den Körper, sondern eine Besondere Klasse
Ich habe eine große div (ganze Seite) und innen habe ich kleinere:
<div class="all">
<div class="tiny"></div>
</div>
div.all
ist wie ein Brett, für mich div.tiny
ist ein kleines Rechteck auf.
Ich will mich zeigen, meinen besonderen Kontext-Menü jederzeit alles (oder nichts) in div.all
erhalten RMB. Aber wenn ich RMB auf div.tiny
ich nicht ausführen wollen, die "default" - Verfahren, aber einige (noch spezieller) - code. Ich habe versucht mit:
jQuery('body').on("contextmenu", ".all", function(){ /* special stuff */});
jQuery('body').off("contextmenu", ".all .tiny"); /* <- tried to turn off my...*/
/*...special stuff for .tiny that way*/
jQuery('body').on("contextmenu", ".tiny", function(){
/* even more special stuff */
});
Wenn ich es laufen, RMB auf div.all
oder-Elemente in es, ich bekomme "spezielle Sachen" gemacht. Aber wenn ich auf RMB auf div.tiny
ich bekomme beide "spezielle Sachen" (die ich auch nicht möchte) und "noch mehr spezielle Sachen" (es ist so besonders, wie ich nicht will!).
Jede Lösung?
Leben schwer zu machen, die ich nicht ändern kann die Reihenfolge (die ersten jQuery()
für div.all
, ALS meine Funktionen für div.tiny
) - in meinem realen Projekt die Dinge sind komplizierter, und ich habe zu halten, um für einige Gründe (noch ist es hübsch Aussehen vernünftig - von globalen Ereignissen bis präzise ein).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist ganz einfach, Sie müssen nur aufhören, die Veranstaltung von der Propagierung weiter als Ihre
.tiny
hf.Vorausgesetzt, Sie kann eine ganze Menge
.tiny
's, oder Sie sind dynamisch generiert, könnten Sie delegieren diese Veranstaltung zu.all
:Weitere option ist, um die
e.target
.Dann würden Sie müssen nur Ihre normalen handler für
.tiny