Sådan bruges JavaScript Document begivenhed objekt til program med HTML

Document begivenhed objekt er enestående, fordi det kan du oprette andre begivenheder i JavaScript. Du bruger createEvent () metode til at skabe en begivenhed, der kunne simulere noget som et museklik. Selvom dette objekt giver kun én metode, er det en kraftfuld metode. Den eneste måde til virkelig at forstå denne særlige formål er at se det i aktion. Det følgende eksempel udfører tre opgaver:

  • Giver et middel til en simuleret klik
  • Tilføjer en event handler, der forhindrer standardhandlingen simulere et klik
  • Fjerner event handler, der forhindrer standardhandlingen simulere et klik

Det er en noget avanceret eksempel, men det er også utroligt nyttigt kode, fordi du kan bruge det til at tilføje automatisering til dine applikationer, der vil vise sig nyttigt at mindre kvalificerede brugere.

fungere SimulateClick ()
{
// Opret begivenheden.
var ClickEvent = document.createEvent ("MouseEvents");

// Konfigurer begivenheden.
ClickEvent.initMouseEvent (
"Klik", // Hændelsestype
sandt, kan // bruge boble teknik?
sandt, // Er denne begivenhed cancelable?
vindue, // View, bør altid være vindue.
0, // Antal museklik.
0, // Screen X-koordinat
0, // Screen Y-koordinat
0, // Client X-koordinat
0, // Client Y-koordinat
falsk, // Ctrl nede?
falsk, // Alt nede?
falsk, // Shift nede?
falsk, // Meta nede?
0, // Antal knap klikkes.
null); // Relaterede mål

// Opnå en reference til objektet.
Var TestCheck = document.getElementById ("chkTest");

// Udfør klik og registrere, om et klik
// Blev annulleret af en anden behandling.
var Lykkedes = TestCheck.dispatchEvent (ClickEvent);

// Vise resultatet af simuleringen på skærmen.
hvis (Lykkedes)
{
alert ("The Click lykkedes!");
}
andet
{
alert ("The Click blev aflyst!");
}
}

Koden begynder ved at opnå en reference til målet begivenhed objekt, som er MouseEvents i denne sag. The initMouseEvent () funktion tager et væld af argumenter - som alle er nødvendige for at gøre eksempel arbejde. Check her for at læse mere om argumenter.

Efter kode opretter en begivenhed, er det tid til at få en henvisning til den kontrol, som skal bruge begivenheden. I dette tilfælde den eksempel bruger et afkrydsningsfelt ved navn chkTest. At udstede begivenheden, programmet kalder dispatchEvent () med arrangementet, ClickEvent, som argumentet.

Loven brande (spørgsmål) begivenheden. Afkastet værdi bestemmer, om begivenheden lykkedes. Når du bruger standard lytter og handler, er afkrydsningsfeltet enten vælges eller fravælges, afhængigt af dens tidligere tilstand.

Koden slutter ved at bestemme tilbagevenden status lykkedes. Hvis intet forhindrer begivenheden fra lykkes lykkedes er sandt, og den første indberetning () viser skærmen. Ellers kan du se den anden advarsel () besked. Selvfølgelig er spørgsmålet nu, hvordan at forhindre standardhandlingen opstår. Følgende kode udfører denne opgave:

funktion PreventDefault (begivenhed)
{
// Undgå standardhandlingen.
event.preventDefault ();
}
funktion AddHandler ()
{
// Få et objekt reference.
Var TestCheck = document.getElementById ("chkTest");

// Tilsæt event handler.
TestCheck.addEventListener (
"Klik", // Type af arrangement
PreventDefault, // Navn på begivenheden lytteren.
falsk); // Brug capture teknik?
}
funktion RemoveHandler ()
{
// Få et objekt reference.
Var TestCheck = document.getElementById ("chkTest");

// Tilsæt event handler.
TestCheck.removeEventListener (
"Klik", // Type af arrangement
PreventDefault, // Navn på begivenheden lytteren.
falsk); // Brug capture teknik?
}

Når PreventDefault () funktion er aktiv, accepterer en begivenhed objekt som input. Denne event handler stopper automatisk standardhandlingen sker ved at kalde preventDefault (). Afkrydsningsfeltet ikke er markeret, og det lykkedes er sat til falsk, når dette sker.

Men PreventDefault () funktionen er ikke aktiv i begyndelsen. For at gøre det aktivt, programmet kalder AddHandler (), som tilføjer en begivenhed lytteren ved hjælp af addEventListener () funktionen til afkrydsningsfeltet, chkTest. Denne fremgangsmåde kan du bestemme, om browseren kan bruge capture teknik til at arbejde med flere event handlere. For at fjerne event handler, ansøgningen kalder RemoveHandler (), som vender processen ved at ringe removeEventListener ().


© 2019 Zajacperrone.com | Contact us: webmaster# zajacperrone.com