Warum ist die Variable „Ereignis“ verfügbar, auch wenn sie nicht als Parameter übergeben wird?

Lesezeit: 2 Minuten

Warum ist die Variable „Ereignis verfugbar auch wenn sie nicht
Sergej Pauk

Ich frage mich, warum der folgende Code in einigen Browsern funktioniert? Dh auch wenn es keinen Parameter für a gibt click() funktionieren aber event Variable existiert und dosomething Methode wird für das Event-Trigger-Objekt aufgerufen?

$(<selector>).click(function () {
  $(event.target).<dosomething>
});

  • global event. Versuchen event in Konsole

    – Tuschar

    16. Oktober 15 um 9:36 Uhr


  • das erklärt nicht, warum es nur in bestimmten Browsern/Versionen funktioniert

    – Sergej Pauk

    16. Oktober 15 um 9:38 Uhr

  • @SergeyPauk: Es ist ein Microsoftismus.

    – Amadan

    16. Oktober 15 um 9:40 Uhr

  • @Amadan funktioniert auch in Chrom

    – Sergej Pauk

    16. Oktober 15 um 9:40 Uhr

  • @SergeyPauk: Viele Microsoftismen funktionieren in Chrome. Tatsächlich stammen viele Standards vom IE; einfach, weil Microsoft nie auf irgendjemanden gehört und neue Dinge entwickelt hat, die sie wollten, und es anderen überließ, sie zu übernehmen, oder das Risiko einging, dass die Seiten der Benutzer in den Minderheitsbrowsern nicht funktionierten, was ihren Marktanteil noch weiter gefährdete.

    – Amadan

    16. Oktober 15 um 9:42 Uhr


1642795504 630 Warum ist die Variable „Ereignis verfugbar auch wenn sie nicht
TJ Crowder

Warum ist die Variable „Ereignis“ verfügbar, auch wenn sie nicht als Parameter übergeben wird?

Es ist nicht, zuverlässig. Dieser Code wird zum Beispiel auf Firefox fehlschlagen. Es war nicht und gewöhnt an bei Firefox fehlschlagen. Microsoft verwendet a global event Variable. DOM2 hat es als Argument für den Handler definiert. Chrome beschloss, MS-spezifischen Code einen Knochen zu werfen und beides zu tun. Für ein lang Zeit, Firefox nicht. Aber das Global wurde aus Kompatibilitätsgründen als Legacy-API standardisiert (spez | MDN) und Firefox fügte es in v63 hinzu, legte es kurz hinter ein Flag, das der Benutzer aktivieren musste, und seit v66 wird es ohne Flag ausgeliefert.

Beachten Sie das sogar in den Browsern, in denen dieser Code funktioniert event wird ein rohes Ereignisobjekt sein, nicht das jQuery-erweiterte. Das bedeutet, dass Sie beispielsweise mit dem IE8 nicht telefonieren können event.preventDefault weil IE8 diese Funktion nicht liefert. jQuery würde dies tun, wenn Sie das Argument akzeptieren, da jQuery ein Ereignisobjekt mit standardisierten Funktionen bereitstellt, selbst auf Browsern, denen diese Funktionen fehlen.

  • Danke für die Info :), wusste ich nicht

    – Tuschar

    16. Oktober 15 um 9:40 Uhr


.

580260cookie-checkWarum ist die Variable „Ereignis“ verfügbar, auch wenn sie nicht als Parameter übergeben wird?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy