Wat betekent (e) in Javascript/jQuery?

Ik ben nieuw in JavaScript/jQuery en ik heb geleerd hoe ik functies kan maken. Veel functies zijn opgedoken met (e) tussen haakjes. Laat me je laten zien wat ik bedoel:

$(this).click(function(e) {
    // does something
});

Het lijkt er altijd op dat de functie niet eens de waarde van (e) gebruikt, dus waarom staat hij er zo vaak?


Antwoord 1, autoriteit 100%

eis de korte var-referentie voor event-object dat wordt doorgegeven aan gebeurtenis-handlers.

Het gebeurtenisobject heeft in wezen veel interessante methoden en eigenschappen die kunnen worden gebruikt in de gebeurtenishandlers.

In het voorbeeld dat je hebt gepost is een klik-handler die een MouseEvent

is

$(<element selector>).click(function(e) {
    // does something
    alert(e.type); //will return you click
}

DEMO– Mouse Events DEMO gebruikt e.whichen e.type

Enkele nuttige referenties:

http://api.jquery.com/category/events/

http://www.quirksmode.org/js/events_properties.html

http://www.javascriptkit.com/jsref/event.shtml

http://www.quirksmode.org/dom/events/index.html

http://www.w3.org /TR/DOM-Level-3-Events/#event-types-list


Antwoord 2, autoriteit 47%

DISCLAIMER:Dit is een zeer late reactie op dit specifieke bericht, maar aangezien ik verschillende antwoorden op deze vraag heb gelezen, viel het me op dat de meeste antwoorden terminologie gebruiken die alleen kan worden begrepen door ervaren programmeurs. Dit antwoord is een poging om de oorspronkelijke vraag te beantwoorden met een beginnend publiek in gedachten.

Inleiding

Het kleine ‘(e)‘ ding maakt eigenlijk deel uit van een breder bereik van iets in Javascript dat een gebeurtenisafhandelingsfunctie wordt genoemd. Elke gebeurtenisafhandelingsfunctie ontvangt een gebeurtenisobject. Voor het doel van deze discussie, beschouw een object als een “ding” dat een aantal eigenschappen (variabelen) en methoden (functies) bevat, net zoals objecten in andere talen. Het handvat, de ‘e‘ in het kleine (e)ding, is als een variabele waarmee je met het object kunt communiceren (en ik gebruik de term variabeleZEER losjes).

Beschouw de volgende jQuery-voorbeelden:

$("#someLink").on("click", function(e){ // My preferred method
    e.preventDefault();
});
$("#someLink").click(function(e){ // Some use this method too
    e.preventDefault();
});

Uitleg

  • “#someLink” is je elementkiezer (welke HTML-tag dit activeert).
  • “klik” is een gebeurtenis (wanneer op het geselecteerde element wordt geklikt).
  • “function(e)” is de gebeurtenisafhandelingsfunctie (bij gebeurtenis wordt object gemaakt).
  • “e” is de object-handler (object wordt toegankelijk gemaakt).
  • “preventDefault()” is een methode (functie) geleverd door het object.

Wat gebeurt er?
Wanneer een gebruiker op het element klikt met de id “#someLink”(waarschijnlijk een ankertag), roept u een anonieme functie aan, “function(e)”, en wijst u de resulterend object naar een handler, “e”. Neem nu die handler en roep een van zijn methoden aan, “e.preventDefault()”, wat zou moeten voorkomen dat de browser de standaardactie voor dat element uitvoert.

Opmerking:Het handvat kan vrijwel alles worden genoemd wat u maar wilt (d.w.z. ‘function(billybob)‘). De ‘e’ staat voor ‘event’, wat vrij standaard lijkt te zijn voor dit soort functies.

Hoewel ‘e.preventDefault()’ waarschijnlijk het meest gebruikte gebruik van de gebeurtenishandler is, bevat het object zelf veel eigenschappen en methoden die toegankelijk zijn via de gebeurtenishandler.

Er is heel goede informatie over dit onderwerp te vinden op de leersite van jQuery, http://learn.jquery.com. Besteed speciale aandacht aan de JQuery Core gebruikenen Evenementensecties.


Antwoord 3, autoriteit 27%

eheeft geen speciale betekenis. Het is gewoon een afspraak om eals functieparameternaam te gebruiken wanneer de parameter eventis.

Het kan zijn

$(this).click(function(loremipsumdolorsitamet) {
    // does something
}

ook.


Antwoord 4, autoriteit 7%

In dat voorbeeld is eslechts een parameter voor die functie, maar het is het event-object dat erdoor wordt doorgegeven.


Antwoord 5, autoriteit 6%

Het argument eis een afkorting voor het gebeurtenisobject. U wilt bijvoorbeeld code voor ankers maken die de standaardactie annuleert. Om dit te doen zou je iets schrijven als:

$('a').click(function(e) {
    e.preventDefault();
}

Dit betekent dat wanneer op een <a>-tag wordt geklikt, de standaardactie van de klikgebeurtenis wordt voorkomen.

Hoewel je het misschien vaak ziet, is het niet iets dat je binnen de functie hoeft te gebruiken, ook al heb je het als argument opgegeven.


Antwoord 6, autoriteit 4%

In jQuery eeen afkorting voor event, het huidige gebeurtenisobject. Het wordt meestal doorgegeven als een parameter om de gebeurtenisfunctie te activeren.

Demo: jQuery-evenementen

In de demo gebruikte ik e

$("img").on("click dblclick mouseover mouseout",function(e){
        $("h1").html("Event: " + e.type);
}); 

Ik had net zo goed event

kunnen gebruiken

$("img").on("click dblclick mouseover mouseout",function(event){
            $("h1").html("Event: " + event.type);
    }); 

Hetzelfde!

Programmeurs zijn lui, we gebruiken veel steno, deels vermindert het ons werk, deels helpt het bij de leesbaarheid. Als u dat begrijpt, kunt u de mentaliteit van het schrijven van code begrijpen.


Antwoord 7, autoriteit 4%

Vandaag heb ik zojuist een bericht geschreven over “Waarom gebruiken we de letters zoals “e” in e.preventDefault()?” en ik denk dat mijn antwoord logisch zal zijn…

Laten we eerst de syntaxis van addEventListener bekijken

Normaal gesproken is dit:
target.addEventListener(type, listener[, useCapture]);

En de definitievan de parameters van addEventlistener is:

type:Een tekenreeks die het gebeurtenistype vertegenwoordigt waarnaar moet worden geluisterd.

luisteraar:Het object dat een melding ontvangt (een object dat de gebeurtenisinterface implementeert) wanneer een gebeurtenis van het opgegeven type
komt voor. Dit moet een object zijn dat de EventListener implementeert
interface of een JavaScript-functie.

(Van MDN)

Maar ik denk dat er één ding moet worden opgemerkt:
Wanneer u de Javascript-functie als luisteraar gebruikt, wordt het object dat de gebeurtenisinterface (objectgebeurtenis) implementeert automatisch toegewezen aan de “eerste parameter”van de functie. Dus, als u functie (e) gebruikt , wordt het object toegewezen aan “e” omdat “e” de enige parameter van de functie is (zeker de eerste!), dan kun je e.preventDefault gebruiken om iets te voorkomen….

laten we het onderstaande voorbeeld proberen:

<p>Please click on the checkbox control.</p>
<form>
    <label for="id-checkbox">Checkbox</label>
    <input type="checkbox" id="id-checkbox"/>
    </div>
</form>
<script>
    document.querySelector("#id-checkbox").addEventListener("click", function(e,v){
         //var e=3;
         var v=5;
         var t=e+v;
         console.log(t);
        e.preventDefault();
    }, false);
</script>

het resultaat is: [object MouseEvent]5en u voorkomt de klikgebeurtenis.

maar als je het commentaarteken verwijdert zoals :

<script>
       document.querySelector("#id-checkbox").addEventListener("click", function(e,v){
            var e=3;
            var v=5;
            var t=e+v;
            console.log(t);
            e.preventDefault();
       }, false);
   </script>

u krijgt: 8en een error:”Uncaught TypeError: e.preventDefault is geen functie
bij HTMLInputElement. (VM409:69)”.

Zeker, de klikgebeurtenis wordt deze keer niet voorkomen. Omdat de “e” opnieuw is gedefinieerd in de functie.

Als u de code echter wijzigt in:

<script>
       document.querySelector("#id-checkbox").addEventListener("click", function(e,v){
            var e=3;
            var v=5;
            var t=e+v;
            console.log(t);
            event.preventDefault();
       }, false);
   </script>

alles werkt weer naar behoren…je krijgt 8 en de klikgebeurtenis wordt voorkomen

Daarom is “e” slechts een parameter van uw functie en hebt u een “e” in uw functie() nodig om het “event object” te ontvangen en voert u vervolgens e.preventDefault() uit. Dit is ook de reden waarom je de “e” kunt veranderen in woorden die niet door js zijn gereserveerd.


Antwoord 8, autoriteit 2%

Het is een verwijzing naar het huidige gebeurtenisobject


Antwoord 9

$(this).click(function(e) {
    // does something
});

Met verwijzing naar de bovenstaande code
$(this)is het element dat een variabele is.
clickis de gebeurtenis die moet worden uitgevoerd.
de parameter ewordt automatisch doorgegeven van js naar uw functie die de waarde van $(this)bevat en kan verder in uw code worden gebruikt om een bewerking uit te voeren.

Other episodes