jQuery live('click') feuern für rechts-klicken Sie auf

Habe ich bemerkt ein seltsames Verhalten der live() Funktion in jQuery:

<a href="#" id="normal">normal</a>
<a href="#" id="live">live</a>

$('#normal').click(clickHandler);
$('#live').live('click', clickHandler);

function clickHandler() {
    alert("Clicked");
    return false;
}

Das ist fein und dandy, bis Sie mit der rechten Maustaste klicken Sie auf den "live" - link und es ausgelöst wird, der handler, und dann nicht zeigen, das Kontext-Menü. Die event-handler nicht ausgelöst haben (wie erwartet) auf den "normalen" link.

Habe ich in der Lage, das zu umgehen, durch ändern der handler dies:

function clickHandler(e) {
    if (e.button != 0) return true;
    //normal handler code here
    return false;
}

Aber das ist wirklich ärgerlich, müssen wir hinzufügen, dass alle event-Handler. Gibt es eine bessere Möglichkeit zu haben, den event-Handler nur Feuer, wie die normalen Klick-Handler?

  • Wie stellen Sie eine Frage in die Zukunft?
  • Ich war gespannt zu sehen, Ihre workaround hier, und prompt versucht, dies auf meine eigene app, und zwar die links, ich bin rechts-Klick auf jetzt gefangen werden können, und ignoriert, ich bin immer noch nicht zu sehen, meine rechten Maustaste Kontext-Menü auf diese. Auch meine mittlere Maustaste klicken (öffnet sich in einem neuen tab) funktioniert auch nicht. Aber zumindest die Prozedur kann zurückkehren zu früh!
  • Eigentlich, so scheint es, wenn ich mit der rechten Maustaste klicken Sie auf wiederholt, schnell, ich kann gelegentlich erhalten Sie das Kontext-Menü erscheinen.... Hmmm.
  • es scheint wie eine Doppel-rechts-Klick-ist das, was immer wieder ein Kontext-Menü bei mir in Firefox bei der Verwendung von live auf die klicken Sie...
InformationsquelleAutor nickf | 2009-09-28
Schreibe einen Kommentar