Multe evenimente sunt implică în mod automat browser-ul de acțiune.
- Faceți clic pe link-ul inițiază o tranziție către noua adresă URL.
- Apăsând butonul „trimite“ în formă de - trimite-l la server.
- Dublu click pe textul - inițiază selecția.
Există două moduri de a anula browser-ul:
- Principala cale - este de a utiliza obiectul evenimentului. există o metodă standard de event.preventDefault () pentru a anula browser.
- În cazul în care handler este atribuit prin onsobytie (nu prin addEventListener), vă puteți întoarce pur și simplu fals de tratare.
În exemplul următor, atunci când faceți clic pe link-ul de tranziție nu se va întâmpla:
Întoarcere nu este adevărat nevoie
De obicei, valoarea returnată de o tratare a evenimentului, este ignorat.
Singura excepție - l return false din handler atribuite prin onsobytie.
Uneori, dezvoltatorii de cod care încep pot vedea revenirea altor valori. Dar ele nu sunt necesare și nu trebuie prelucrate.
Acest exemplu utilizează CSS poate fi afișată după cum urmează:
De exemplu, ca aceasta:
Din moment ce am folosit delegația, meniul poate fi mărit, puteți adăuga liste imbricate ul / li. le stiliza cu CSS - manipulatorului nu necesită modificări.
default browser-ul de acțiune mult.
Iată câteva exemple de evenimente care declanșează acțiunea browser-ului:
- mousedown - apăsând butonul mouse-ului în timp ce cursorul este pe textul începe alegerea sa.
- click pe - pune sau căpușe.
- submit - atunci când faceți clic pe sub formă de date trimise la server.
- roți - mișcarea de defilare roata mouse-ului declanșează.
- KeyDown - atunci când apăsați un simbol cheie apare în câmpul de introducere.
- ContextMenu - afișat când faceți clic-dreapta meniul contextual al browser-ului.
- ...
Evenimentele pot fi legate
Unele evenimente urmează în mod natural reciproc.
De exemplu, un clic de mouse pe o intrare mousedown Aceasta duce la o concentrare în interiorul acestuia. Dacă anulați o acțiune mousedown. iar accentul va fi.
Încercați să faceți clic pe mouse-ul pe primul - are loc un eveniment onfocus. Aceasta este o situație comună.
Dar, dacă faceți clic pe al doilea, accentul nu se va întâmpla.
Fă-o, astfel încât atunci când faceți clic pe link-urile din cadrul elementului #contents utilizator prezintă întrebarea dacă el într-adevăr vrea să părăsească pagina, iar dacă el nu vrea să-și întrerupă transferul legăturii.
Deci, acest lucru ar trebui să funcționeze:
- #contents de conținut pot fi încărcate dinamic și atribuite folosind innerHTML. Deci găsi toate link-urile și le-a pus în handler imposibilă. Utilizați delegare.
- Conținutul poate conține etichete imbricate, inclusiv în interiorul link-uri. de exemplu, . .
Aceasta este - o problemă clasică privind delegarea.
În viața reală, putem intercepta evenimentul și de a crea AJAX-cerere la server, care va reține informațiile pe care, pentru orice legătură care vizitatorul a plecat.
Am intercepta evenimentele din conținutul și urca parentNode până când vom obține A sau upremsya container.