Hvordan lage egendefinerte hendelser i Javascript for å programmere med HTML

March 23  by Eliza

Standard hendelser som følger med Java utføre godt for de vanligste oppgavene. Men, noen ganger, vil du trenger en tilpasset hendelse. For eksempel må du ha en metode for å utføre et klikk, og Javascript gir en standard hendelse for å håndtere dette behovet. Men det er tider når du trenger å sende informasjon som skaperne av Java ikke kan forutse. I dette tilfellet, må du opprette en egendefinert hendelse.

Hvordan arbeide med CustomEvent objekt i Javascript

Den CustomEvent objekt gir mulighet for å lage en ny hendelse - en som ikke er en del av Javascript som standard. Den CustomEvent objekt er utrolig enkle. Alt på den er de to egenskapene som er beskrevet i følgende liste:

  • Hendelsesnavn: En streng som inneholder navnet du vil bruke for hendelsen. Navnet kan være alt du vil, men det kan ikke inneholde blanke tegn, for eksempel plass. Bruk en understrek (_), hvis ønskelig, å skille ord.
  • Hendelsesdata: Et objekt bokstavelig som inneholder dataene du ønsker å passere som en del av arrangementet. Denne delen av en egendefinert hendelse kan bli ganske komplisert fordi du kan passere et beløp av data i noen form du ønsker, så lenge dataene oppfyller objektet bokstavelig format. Arrangementet data kommer i to former:

    • Standard data: Du kan gi informasjon om noen av eiendommene som støttes av standard hendelsesobjekt. De fleste utviklere definere bobler og oppsigbare egenskaper som et minimum.
    • Tilpassede data: En tilpasset hendelse kan inneholde tilpassede data i noen form. Du må unngå å bruke navnene på noen standard egenskaper. For eksempel kan du ikke gi et tilpasset eiendom navnet bobler. Mange utviklere bruke detalj eiendom for å inneholde detaljer om tilpasset arrangementet, men dette er bare en konvensjon, og du er fri til å bruke noen form du ønsker.

Hvordan du oppretter egendefinerte hendelseskode i Javascript

Java gjør det ganske enkelt å lage egne arrangementer av din egen. Disse hendelsene kan være alt. Det er mange bruksområder for egendefinerte hendelser, men de alle følger samme mønster. Dette eksemplet begynner den globale tilpasset hendelses objektet vist her.

// Definer en ny hendelse.
Var SpecialEvent = ny CustomEvent (
"SpecialMessage",
{
detalj:
{
melding: "Hei",
tid: new Date ()
}
bobler: true,
cancelable: true
});

Legg merke til at denne hendelsen er avhengig av en form for objekt bokstavelig. Men legg merke til hvordan detalj er faktisk en nestet objekt bokstavelig. Du kan reir informasjons så mange nivåer dypt etter behov. Hvis du senere ønsker å endre noen trekk av hendelsen, kan du gjøre det. For eksempel vil endre meldingen, vil du bruke kode som ligner på dette:

SpecialEvent.detail.message = "En ny melding!";

Nå som du har en egendefinert hendelse som skal brukes, må du gå gjennom tre faser for å gjennomføre det. Først må du tildele arrangementet til en kontroll. Eksempelet bruker en etikett og forteller at programmet skal gjøre oppdraget som en del av skjemaet lasting prosessen ved hjelp av: <body onload = "AssignEvent ()">. Her er koden du trenger for å tildele arrangementet til etiketten:

funksjon AssignEvent ()
{
// Skaff objekt referanse.
Var Label = document.getElementById ("custom");

// Tilordne en hendelse til objektet.
Label.addEventListener (
"SpecialMessage", HandleEvent, false);
}

Her ser du det en standard klikk begivenhet for SpecialMessage tilpasset hendelsen. Enten du tilordne en standard eller egendefinert hendelse, er teknikken den samme.

Den andre fasen av å implementere en tilpasset arrangementet er å skyte hendelsen. Dette eksempelet er avhengig av en knapp for å utføre oppgaven, men enhver handling kunne fyre av hendelsen. Alt du trenger er en handling hvor du kan feste kode for å utføre oppgaven med å skyte hendelsen. Her er arrangementet avfyring koden som brukes for dette eksempelet:

funksjon FireEvent ()
{
// Skaff objekt referanse.
Var Label = document.getElementById ("custom");

// Brann hendelsen.
Label.dispatchEvent (SpecialEvent);
}

Den dispatchEvent () funksjonen utfører selve arbeidet. Legg merke til at du brann hendelsen ved hjelp av hendelsen objektet du opprettet tidligere. Hvis du hadde ønsket, kan du tilordne verdier til noe av innholdet som finnes i den egendefinerte hendelsen. For den saks skyld, kan du skape nytt innhold som nødvendig så lenge mottakeren vet hvordan å jobbe med det nye innholdet.

Den tredje fasen av å implementere en tilpasset arrangementet er å gi hendelsesbehandling. Hendelseshåndterer mottar tilpasset hendelsen fra kontroll som er tildelt arrangementet behandleren. Her er hendelsesbehandling brukes i dette tilfellet:

funksjon HandleEvent (hendelse)
{
// Vise informasjon om arrangementer.
document.getElementById ("custom"). innerhtml =
"Control:" + event.currentTarget.id +
"<br /> Melding:" + event.detail.message +
"<br /> Tid sendes:" +
event.detail.time.toTimeString ();
}

Alt som dette hendelseshåndterer gjør er å vise den egendefinerte hendelsesinformasjon på skjermen.

Hvordan lage egendefinerte hendelser i Javascript for å programmere med HTML