Kadangi mes ką tik kalbėjome apie įvykius, dabar yra tinkamas laikas paminėti įprastus įvykius. Visi įvykiai, apie kuriuos kalbėjome iki šiol, yra „tikri“, taip sakant, įvykiai. Įvykiai, kilę iš DOM, remiantis realiais įvykiais, pvz., Paspaudimu ar klavišo paspaudimu. Šie įvykiai gali būti dirbtinai „suaktyvinti“ „jQuery“. Pavyzdžiui, norėdami „suklastoti“ vieno mygtuko paspaudimą, galite:
$("#some-button").trigger("click");
Tada visi paspaudimų apdorotojai, susieti su tuo mygtuku, suveiks taip, lyg vartotojas tikrai spustelėtų tą mygtuką. Bet kas būtų, jei padarytume:
$("#some-button").trigger("dance");
Kas tada atsitiks? „Šokis“ nėra „tikras“ įvykis. Bet klaida nebus mesta. Taip atsitinka, kad tikriausiai nėra nė vieno „šokio“ tvarkytojo, pririšto prie šio mygtuko. Tačiau jų gali būti ir iš esmės tai yra užsakomasis įvykis. Renginys su pavadinimu, kurį jūs tiesiog sugalvojate.
Kodėl tu taip darei? Dažniausiai organizacinės priežastys. Galbūt jums patinka atskirti „JavaScript“, tvarkantį įvykius ir veiksmus, ir „JavaScript“, kuris tvarko duomenis ir administravimo dalykus. Tai labai pagrįsta. Jei šis mygtukas galbūt būtų mygtukas „Išsaugoti nustatymus“, galite tiesiog paleisti pasirinktinį įvykį, pavadintą „išsaugoti nustatymus“, o kitur turėtumėte tvarkytuvą, kuris laukia, kol įvykis suaktyvins, ir iš tikrųjų išsaugo duomenis. Iš esmės tai padarėme pavyzdyje iš vaizdo įrašo.
Kitas pritaikytų įvykių naudojimo atvejis yra bendrųjų vartotojo sąsajos komponentų kūrimas. Apie tai kalbu šiame tinklaraščio įraše.
Galbūt kuriate akordeono efektą kaip vartotojo sąsają. Akordeonas atlieka tai, ką daro visos akordeonai, atidaro ir uždaro paneles paspaudimais / bakstelėjimais. Jūsų vartotojo sąsajos komponentas tai daro labai gražiai. Dabar kūrėjas, kuris naudoja tą akordeoną, gali turėti ypatingų ir unikalių dalykų, kuriuos nori su juo nutikti. Tarkime, kad paskyros nustatymams jie naudoja akordeoną, o kai vartotojas uždaro skydą, jie nori išsaugoti duomenis iš tame skydelyje esančių formos elementų. Tradicinis modelis gali būti, kad to akordeono vartotojo sąsajos komponento autorius gali pasiūlyti atgalinio skambinimo funkcijas, kai tas veiksmas įvyksta. Inicijuodami akordeoną, perduodate atgalinio skambinimo funkcijas, kurias norite iškviesti, kai įvyksta šie dalykai. Tai vienas kelias eiti. Kitas kelias būtų tai, kad akordeonas tiesiog automatiškai iššauktų pasirinktinius įvykius, atlikdamas visus susijusius veiksmus.Kai tas skydelis užsidaro, jis gali užsidegti apanelClosed
renginys pačiame akordeono elemente. Tada su juo dirbantys kūrėjai galėtų tiesiog prisijungti prie tų įvykių. Tai tik dar vienas kelias, kurį galite eiti dėl organizacinių priežasčių, kurie gali būti gana elegantiški.