jQuery in modo succinto Eventi e jQuery

Non limitato a un singolo evento pronto ()

È importante tenere presente che è possibile dichiarare il maggior numero di personalizzati pronto() eventi come vorresti. Non sei limitato ad allegare un singolo .pronto() evento al documento. Il pronto() gli eventi vengono eseguiti nell'ordine in cui sono inclusi.

Gli appunti: Passando alla funzione jQuery, una funzione - ad es. jQuery (funciton () // code here) - è una scorciatoia per jQuery (document) .ready ().


Allegare / rimuovere eventi usando bind () e unbind ()

Usando il bind () metodo - ad es. jQuery ( 'a'). bind ( 'click', function () ) - è possibile aggiungere uno dei seguenti gestori standard agli elementi DOM appropriati.

  • sfocatura
  • messa a fuoco
  • caricare
  • ridimensionare
  • scorrere
  • scaricare
  • beforeunload
  • clic
  • DblClick
  • mousedown
  • MouseUp
  • MouseMove
  • mouseover
  • mouseout
  • modificare
  • selezionare
  • Sottoscrivi
  • keydown
  • pressione di un tasto
  • keyup
  • errore

Ovviamente, in base agli standard DOM, solo alcuni gestori coincidono con elementi particolari.

Oltre a questo elenco di gestori standard, puoi anche fare leva bind () per allegare gestori personalizzati jQuery - ad es. MouseEnter e mouseLeave - così come tutti i gestori personalizzati che puoi creare.

Per rimuovere i gestori standard o i gestori personalizzati, semplicemente passiamo il svincolare () metodo il nome del gestore o il nome del gestore personalizzato che deve essere rimosso - ad es. jQuery ( 'a'). svincolare ( 'click'). Se nessun parametro è passato a svincolare (), rimuoverà tutti i gestori collegati a un elemento.

Questi concetti appena discussi sono espressi nell'esempio di codice seguente.

     

Gli appunti: jQuery offre diverse scorciatoie per bind () metodo da utilizzare con tutti gli eventi DOM standard, che esclude gli eventi jQuery personalizzati come MouseEnter e mouseLeave. L'utilizzo di queste scorciatoie implica semplicemente la sostituzione del nome dell'evento come nome del metodo - ad es. .clic(), mouseout (), messa a fuoco().

Puoi associare un numero illimitato di gestori a un singolo elemento DOM usando jQuery.

jQuery fornisce il uno() metodo di gestione degli eventi per associare convenientemente un evento agli elementi DOM che verranno eseguiti una volta e quindi rimossi. Il uno() il metodo è solo un wrapper per bind () e svincolare ().


Richiama programmaticamente un gestore specifico tramite i metodi Short Event

La sintassi di scelta rapida - ad es. .clic(), mouseout (), e messa a fuoco() - per il binding di un gestore di eventi a un elemento DOM può essere utilizzato anche per invocare i gestori a livello di codice. Per fare ciò, usa semplicemente il metodo dell'evento di collegamento senza passargli una funzione. In teoria, ciò significa che possiamo associare un gestore a un elemento DOM e quindi invocare immediatamente quel gestore. Di seguito, lo dimostrerò tramite il clic() evento.

    Dì ciao  Dì ciao     

Gli appunti: È anche possibile utilizzare l'evento trigger () metodo per invocare gestori specifici - ad es. jQuery ('a'). click (function () alert ('hi')). trigger ('click'). Funzionerà anche con gli eventi con nomi assegnati e personalizzati.


jQuery Normalizza l'oggetto evento

jQuery normalizza l'oggetto evento in base agli standard W3C. Ciò significa che quando l'oggetto evento viene passato a un gestore di funzioni non ti devi preoccupare delle implementazioni specifiche del browser dell'oggetto evento (ad esempio, di Internet Explorer window.event). È possibile utilizzare senza problemi i seguenti attributi e metodi dell'oggetto evento dalle differenze tra browser poiché jQuery normalizza l'oggetto evento.

Attributi dell'oggetto evento

  • Tipo di evento
  • event.target
  • event.data
  • event.relatedTarget
  • event.currentTarget
  • event.pageX
  • event.pageY
  • event.result
  • event.timeStamp

Metodi oggetto evento

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

Per accedere all'oggetto evento jQuery normalizzato, basta passare la funzione anonima, passata a un metodo evento jQuery, un parametro denominato "evento" (o qualsiasi altra cosa si voglia chiamare). Quindi, all'interno della funzione di callback anonimo, utilizzare il parametro per accedere all'oggetto evento. Di seguito è riportato un esempio codificato di questo concetto.

       

Groking Event Namespacing

Spesso avremo un oggetto nel DOM che deve avere diverse funzioni legate a un singolo gestore di eventi. Ad esempio, prendiamo il gestore di ridimensionamento. Usando jQuery, possiamo aggiungere tante funzioni al window.resize gestore come ci piace. Ma cosa succede quando è necessario rimuovere solo una di queste funzioni ma non tutte? Se usiamo $ (Window) .unbind ( 'ridimensionamento'), tutte le funzioni collegate al window.resize il gestore verrà rimosso. Per namespace un gestore (ad es. resize.unique), possiamo assegnare un hook univoco a una funzione specifica per la rimozione.

       

Nel codice precedente, aggiungiamo due funzioni al gestore di ridimensionamento. Il secondo evento di ridimensionamento (ordine documento) aggiunto utilizza il namespace degli eventi e quindi rimuove immediatamente questo evento utilizzando svincolare (). L'ho fatto per sottolineare che la prima funzione collegata non è stata rimossa. Gli eventi Namespacing ci danno la possibilità di etichettare e rimuovere funzioni univoche assegnate allo stesso gestore su un singolo elemento DOM.

Oltre a non associare una funzione specifica associata ad un singolo elemento DOM e gestore, possiamo anche usare il namespacing degli eventi per invocare esclusivamente (usando trigger ()) un gestore e una funzione specifici collegati a un elemento DOM. Nel codice seguente, vengono aggiunti due eventi clic , e quindi usando namespacing, viene invocato solo uno.

    clic    

Gli appunti: Non c'è limite alla profondità o al numero di spazi dei nomi usati - ad es. resize.layout.headerFooterContent.

Namespacing è un ottimo modo per proteggere, invocare, rimuovere eventuali gestori esclusivi che un plugin potrebbe richiedere.

Namespacing funziona con eventi personalizzati e eventi standard - ad es. click.unique o myclick.unique.


Delega di eventi Groking

La delega degli eventi si basa sulla propagazione degli eventi (a.k.a. bubbling). Quando si fa clic su all'interno di a

  • , che è all'interno di a