jQuery Succinctly Evenimente și jQuery

Nu este limitat la un singur eveniment gata ()

Este important să rețineți că puteți declara cât mai multe obiceiuri gata() evenimente așa cum doriți. Nu vă limitați la atașarea unui singur .gata() eveniment la document. gata() evenimentele sunt executate în ordinea în care sunt incluse.

Note: Dacă trecem funcția jQuery, o funcție - de ex. jQuery (funciton () // cod aici) - este o scurtătură pentru jQuery (documentul) .ready ().


Atașarea / eliminarea evenimentelor Utilizând bind () și unbind ()

Utilizarea lega() - de exemplu. jQuery ( 'a'). bind (clic, funcția () ) - puteți adăuga oricare dintre următorii agenți de standardizare la elementele DOM corespunzătoare.

  • estompa
  • concentra
  • sarcină
  • redimensiona
  • sul
  • descărca
  • beforeunload
  • clic
  • dblclick
  • mousedown
  • MouseUp
  • mousemove
  • mouse-ul peste
  • mouseout
  • Schimbare
  • Selectați
  • a depune
  • Tasta în jos
  • keypress
  • keyup
  • eroare

Evident, pe baza standardelor DOM, numai anumiți manipulatori coincid cu anumite elemente.

În plus față de această listă de agenți de lucru standard, puteți, de asemenea, să profitați de ele lega() pentru a atașa handler-ele personalizate jQuery - de ex. mouseenter și mouseleave - precum și orice manipulatoare personalizate pe care le puteți crea.

Pentru a elimina utilizatorii standard sau agenții personalizați, pur și simplu treceți desface() metoda de manipulare numele sau numele personalizat handler care trebuie să fie eliminate - de ex. jQuery ( 'a'). dezlega ( 'click'). Dacă nu se transmit parametri desface(), acesta va elimina toți manipulanții atașați la un element.

Aceste concepte discutate sunt exprimate în exemplul de cod de mai jos.

     

Note: jQuery oferă mai multe comenzi rapide la lega() metoda de utilizare cu toate evenimentele standard DOM, care exclude evenimente jQuery personalizate cum ar fi mouseenter și mouseleave. Utilizarea acestor comenzi rapide presupune înlocuirea numelui evenimentului cu numele metodei - de ex. .clic(), mouseout (), se concentreze ().

Aveți posibilitatea să atașați utilizatori nelimitați la un singur element DOM folosind jQuery.

jQuery oferă unu() metoda de manipulare a evenimentului pentru a lega convenabil un eveniment elementelor DOM care vor fi executate o dată și apoi eliminate. unu() metoda este doar un înveliș pentru lega() și desface().


Invocați programatic un manipulator specific prin metode scurte de evenimente

Sintaxa de scurtătură - de ex. .clic(), mouseout (), și se concentreze () - pentru legarea unui manipulator de evenimente la un element DOM poate fi, de asemenea, folosit pentru a invoca programabil manageri. Pentru a face acest lucru, pur și simplu utilizați metoda evenimentului de comenzi rapide fără a trece o funcție. În teorie, aceasta înseamnă că putem lega un manipulant unui element DOM și apoi îl invocăm imediat pe acel manipulant. Mai jos, demonstrez acest lucru prin clic() eveniment.

    Spune bună  Spune bună     

Note: Este, de asemenea, posibilă utilizarea evenimentului declanșare () metodă pentru a invoca anumiți agenți de manipulare - de ex. jQuery ('a') faceți clic pe (funcția () alert ('hi')).. Aceasta va funcționa, de asemenea, cu evenimente cu nume și evenimente personalizate.


jQuery normalizează obiectul evenimentului

jQuery normalizează obiectul evenimentului în conformitate cu standardele W3C. Aceasta înseamnă că atunci când obiectul evenimentului este transmis unui handler de funcții, nu trebuie să vă faceți griji cu privire la implementările specifice ale browserului pentru obiectul evenimentului (de exemplu, Internet Explorer window.event). Puteți utiliza următoarele atribute și metode ale obiectului eveniment fără griji față de diferențele browserului deoarece jQuery normalizează obiectul evenimentului.

Atributele obiectelor de eveniment

  • tip de eveniment
  • event.target
  • event.data
  • event.relatedTarget
  • event.currentTarget
  • event.pageX
  • event.pageY
  • event.result
  • event.timeStamp

Metode pentru obiecte de eveniment

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

Pentru a accesa obiectul evenimentului jQuery normalizat, pur și simplu treceți funcția anonimă, trecută la o metodă a evenimentului jQuery, un parametru numit "eveniment" (sau orice doriți să-l numiți). Apoi, în interiorul funcției de apel invers anonim, utilizați parametrul pentru a accesa obiectul evenimentului. Mai jos este un exemplu codificat al acestui concept.

       

Grokking Event Spacer

Deseori vom avea un obiect în DOM care trebuie să aibă mai multe funcții legate de un singur handler de evenimente. De exemplu, hai să luăm mânerul pentru redimensionare. Folosind jQuery, putem adăuga cât mai multe funcții la window.resize cum ne place. Dar ce se întâmplă când trebuie să eliminăm doar una dintre aceste funcții, dar nu toate acestea? Dacă vom folosi $ (Fereastră) .unbind ( 'resize'), toate funcțiile atașate la window.resize handler va fi eliminat. Prin plasarea numelor unui manipulator (de ex. resize.unique), putem atribui un cârlig unic unei funcții specifice pentru eliminare.

       

În codul de mai sus, adăugăm două funcții la dispozitivul de redimensionare. Al doilea eveniment (pentru ordinea documentelor) redimensionat adăugat folosește namespacing eveniment și apoi elimină imediat acest eveniment folosind desface(). Am făcut acest lucru pentru a face ca prima funcție atașată să nu fie eliminată. Evenimentele privind evenimentele cu numele ne dau posibilitatea de a eticheta și de a elimina funcțiile unice atribuite aceluiași manipulator pe un singur element DOM.

În plus față de dezlegarea unei funcții specifice asociate unui singur element DOM și a unui manipulator, putem folosi și namespacingul evenimentului pentru a invoca exclusiv (folosind declanșare ()) un handler specific și o funcție atașată la un element DOM. În codul de mai jos, se adaugă două evenimente pentru clicuri , și apoi folosind namespacing, doar unul este invocat.

    clic    

Note: Nu există limită pentru adâncimea sau numărul de spații de nume folosite - de ex. resize.layout.headerFooterContent.

Păstrarea numelor este o modalitate excelentă de a proteja, invoca, înlătura orice manipulatori exclusivi pe care pluginul le poate cere.

Funcțiile numelui funcționează cu evenimente personalizate, precum și evenimente standard - de ex. click.unique sau myclick.unique.


Grokking Event Delegare

Delegarea evenimentului se bazează pe propagarea evenimentului (bâlbâială, de exemplu). Când faceți clic pe un în interiorul unui

  • , care este în interiorul unui