jQuery Succinctly Events & jQuery

Inte begränsad till en enda redo () händelse

Det är viktigt att komma ihåg att du kan deklarera så många anpassade redo() händelser som du skulle vilja. Du är inte begränsad till att bifoga en enda .redo() händelse till dokumentet. De redo() händelser exekveras i den ordning de ingår i.

Anmärkningar: Passerar jQuery-funktionen, en funktion - t.ex.. jQuery (funciton () // kod här) - är en genväg för jQuery (dokument) .ready ().


Bifoga / ta bort händelser Använda bind () och binda ()

Använda binda() metod - t.ex.. jQuery ( 'a'). bind ( 'klick', function () ) - Du kan lägga till någon av följande standardhanterare till lämpliga DOM-element.

  • fläck
  • fokus
  • ladda
  • ändra storlek
  • skrolla
  • lasta av
  • beforeunload
  • klick
  • dblclick
  • mousedown
  • mouseup
  • mouse
  • mouseover
  • mouseOut
  • Byta
  • Välj
  • lämna
  • nyckel ner
  • knapptryckning
  • keyUp
  • fel

Självklart, baserat på DOM-standarder, är det bara vissa hanterare som sammanfaller med vissa delar.

Förutom den här listan över standardhanterare kan du också utnyttja binda() att bifoga jQuery anpassade hanterare - t.ex.. mouseenter och mouseleave - såväl som eventuella anpassade hanterare du kan skapa.

För att ta bort standardhanterare eller anpassade hanterare passerar vi helt enkelt Unbind () Metod Hanterarens namn eller anpassat hanteringsnamn som måste tas bort - t.ex.. jQuery (A). Unbind ( 'klick'). Om inga parametrar skickas till Unbind (), Det kommer att ta bort alla hanterare som är anslutna till ett element.

Dessa begrepp som just diskuterats uttrycks i koden nedan.

     

Anmärkningar: jQuery ger flera genvägar till binda() Metod för användning med alla standard DOM-händelser, som utesluter anpassade jQuery-händelser som mouseenter och mouseleave. Genom att använda dessa genvägar innebär det bara att byta händelsens namn som metodnamn - t.ex.. .klick(), mouseOut (), fokus().

Du kan bifoga obegränsade hanterare till ett enda DOM-element med jQuery.

jQuery tillhandahåller ett() händelsehanteringsmetod för att enkelt binda en händelse till DOM-element som kommer att utföras en gång och sedan tas bort. De ett() Metoden är bara en omslag för binda() och Unbind ().


Programmatiskt uppkalla en särskild handler via korta evenemangsmetoder

Genvägssyntaxen - t.ex.. .klick(), mouseOut (), och fokus() - för att binda en händelsehanterare till ett DOM-element kan också användas för att aktivera hanterare programmatiskt. För att göra detta, använd helt enkelt genvägsmetoden utan att ge den en funktion. I teorin innebär det att vi kan binda en hanterare till ett DOM-element och sedan omedelbart åberopa den hanteraren. Nedan demonstrerar jag detta via klick() händelse.

    Säg hej  Säg hej     

Anmärkningar: Det är också möjligt att använda evenemanget utlösaren () metod för att åberopa specifika hanterare - t.ex.. jQuery ('a'). klicka (funktion () alert ('hi')). trigger ('klick'). Detta kommer även att fungera med namespaced och anpassade händelser.


jQuery Normaliserar händelseobjektet

jQuery normaliserar händelseobjektet enligt W3C-standarder. Det betyder att när händelseobjektet skickas till en funktionshanterare behöver du inte oroa dig för webbläsarspecifika implementeringar av händelseobjektet (t.ex. Internet Explorer window.event). Du kan använda följande attribut och metoder för händelseobjektet utan bekymmer från webbläsarens skillnader eftersom jQuery normaliserar händelseobjektet.

Event Object Attributes

  • event typ
  • event.target
  • event.data
  • event.relatedTarget
  • event.currentTarget
  • event.pageX
  • event.pageY
  • event.result
  • event.timeStamp

Händelseobjektmetoder

  • event.preventDefault ()
  • Event.isDefaultPrevented ()
  • Event.stopPropagation ()
  • event.isPropagationStopped ()
  • Event.stopImmediatePropagation ()
  • event.isImmediatePropagationStopped ()

För att komma åt det normaliserade jQuery-händelsesobjektet, skicka helt enkelt den anonyma funktionen, skickad till en jQuery-händelsemetod, en parameter som heter "händelse" (eller vad du vill kalla det). Sedan, inuti den anonyma återuppringningsfunktionen, använd parametern för att komma åt händelseobjektet. Nedan är ett kodat exempel på detta koncept.

       

Grokking Event Namespacing

Ofta kommer vi att ha ett objekt i DOM som behöver ha flera funktioner knutna till en enda händelsehanterare. Till exempel, låt oss ta storlek på hanteraren. Med jQuery kan vi lägga till så många funktioner till window.resize handler som vi vill. Men vad händer när vi behöver ta bort en av dessa funktioner men inte alla? Om vi ​​använder $ (Fönster) .unbind (resize), alla funktioner som är anslutna till window.resize handler kommer att tas bort. Genom namespacing en handler (t.ex.. resize.unique) kan vi tilldela en unik krok till en specifik funktion för borttagning.

       

I ovanstående kod lägger vi till två funktioner till resize handler. Den andra (dokumentorder) resize-händelsen läggs till använder händelsesnamnspacing och tar omedelbart bort den här händelsen med Unbind (). Jag gjorde detta för att poängtera att den första funktionen som bifogas inte tas bort. Namespacing-händelser ger oss möjlighet att märka och ta bort unika funktioner som tilldelats samma hanterare på ett enda DOM-element.

Förutom att binda upp en specifik funktion som är associerad med ett enda DOM-element och hanterare, kan vi även använda händelsemängdsavstånd för att uteslutande anropa (med användning av utlösaren ()) En specifik hanterare och funktion kopplad till ett DOM-element. I koden nedan läggs två klickhändelser till , och sedan använder namespacing, bara en påkallas.

    klick    

Anmärkningar: Det finns ingen gräns för djupet eller antalet namnrymden som används - t.ex.. resize.layout.headerFooterContent.

Namespacing är ett utmärkt sätt att skydda, åberopa, ta bort alla exklusiva hanterare som ett plugin kan behöva.

Namespacing fungerar med anpassade händelser samt standardhändelser - t.ex.. click.unique eller myclick.unique.


Grokking Event delegation

Evenemangsdelegation är beroende av händelseförökning (t.ex. bubbling). När du klickar på en insidan av a

  • , som är inuti a