Nasaďte si klapku
Pre metódu pomoci addEventListener() vložili sme prvok
- kópia kliknutia „klik“ (stlačenie ľavého tlačidla myši na prvok), ktoré pre dodatočnú silu cieľového objektu Event zmení názov tagu prvku a v dôsledku toho aj hodnotu hodnoty hodnoty "LI", potom zmení farebný štýl textu na zeleň keď spratsovvanni. Ak chcete venovať pozornosť, je najvhodnejšie nainštalovať jednu vzorku pre prvok Batkiv, a nie pre prvok skin, je to dôležité najmä pri dynamickej zmene počtu prvkov, v takom prípade je potrebné aktualizovať vzorky prvkov.
- Prihláste sa na odber cez HTML kód (neodporúča sa tweetovať).
- Prostredníctvom kódu JavaScript pre pomoc s nastavením prvku napájania na [pod_ya] , de [pod_ya] - tse im'ya sevnoї podії.
- Prostredníctvom kódu JavaScript na pomoc špeciálnej metóde addEventListener.
- Nájdite prvok (objekt) v strome DOM, na základe ktorého chcete preplatiť.
- Dajte nájdenému predmetu moci, pretože matka je vinná takýmto pohľadom:
na [podіya], de [podіya] - tse im'ya spev podії.
Po kom je potrebné, aby úrady priniesli vzorku, tobto. funkcia je pridelená deacu, keďže má byť v súčasnosti vikonuovaná. - udalosť (obv'yazkovy) - im'ya podії, na ceste, ktorú chcete predplatiť (počúvať);
- spätné volanie (obv'yazkovy) - funkcia (anonymne pomenovaná), ako spôsob konverzie pododdelenia;
- fáza (nie obov'yazykovy) - štádium, ktoré má zmenu srdca. Tento parameter má 2 hodnoty: true (v štádiu zlučovania (pretečenia) pod) a false (v štádiu zlučovania pod). Ak tento parameter nie je zadaný, hodnota bude false .
- podtyp: riadok, ktorý špecifikuje typ podtypu, pre ktorý je zaregistrovaný vzorkovač. Typ podtypu musí byť špecifikovaný bez predpony on.
- obrobnik: funkcia viraz alebo nazov funkcie, kedze je vinna volania pri priradeni podtypu k typu.
- fáza: Booleovská hodnota, čo znamená, že pre ktorú fázu bude rozšírenie zaregistrované. Možné hodnoty:
- true – registrácia vzorového protokolu pre fázu pretečenia.
- nepravda – zaregistrujte podpis pre fázu zlučovania.
- Ni.
Ak je zadaná logická hodnota true, potom funkcia určená odpočúvaním nie je žiadnym spôsobom zodpovedná za propagáciu (vrátane metódy preventDefault()). Aj keď je metóda preventDefault() stále zakázaná, prehliadač ju bude ignorovať a v konzole vytvorí varovanie. Logická hodnota false označuje, že funkcia kontroly môže kontrolovať povýšenia (môžete zavolať metódu preventDefault()).
Vzhľadom na špecifikáciu musí byť hodnota zámku pre pasívny parameter vždy nepravdivá. Dáva však možnosť odpočúvania odpočúvať, zablokovať hlavný tok prehliadača pri pokuse o rolovanie, čo môže viesť k výraznému poklesu produktivity za hodinu rolovania.
Na vyriešenie týchto problémov používajú prehliadače deyaki (zocrema, і ) zmenil hodnotu za pasívnym prechodom na true pre pododdiely touchstart a touchmove rovnakých uzlov Window , Document a Document .body dokumentu. Tse zabіgaє vikliku odpočúvanie podіy, že vіn nemôže blokovať vіbrаzhennya storіnki pіd hоrkuchuvannya.
O pasívnu hodnotu pre základný podscroll (scroll) sa nemusíte starať, úlomky sa nedajú rozoznať, poslucháči si nemôžu v žiadnom momente zablokovať zobrazenie bočného panela.
Nuansy vyjadrenia tsgogo v obrobnik podії
Spravidla je potrebné preniesť prvok, na ktorý ste aplikovali dolný index, je to dôležité najmä pri výbere určeného dolného indexu pre prvky rovnakého typu. Ako pridať primárnu funkciu na nájdenie prvku po pomocnej metóde addEventListener(), potom bude tomuto prvku priradená hodnota this v strede takejto rutiny. Hodnota tohto bude v súlade s hodnotami sily currentTarget argumentu objektu čiastkovej udalosti, ktorý sa odovzdá podobjektu, napríklad:
prvok.addEventListener("kliknutie", funkcia ( e) (console .log(this .className); // odošle do konzoly výkonovú hodnotu className prvku elem konzola .log( e.currentTarget === toto); // pravda)))Aby ste venovali pozornosť dôležitému momentu, ktorého význam je možné zmeniť, napríklad funkcie šípok sa nestarajú o kontext tohto a v tomto prípade sa nebudete spoliehať na prvok:
prvok.addEventListener("kliknúť", ( e) => (console .log(this .className); // toto nie je nastavené na elem konzola .log( e.currentTarget === toto); // nepravda)Pozrime sa bližšie na situáciu, pre ktorú je vzorka indikácií atribútom HTML prvok. Kód JavaScript Hodnota atribútu je efektívne zabalená do funkcie kolektora, takže hodnota atribútu sa zobrazuje spôsobom, ktorý zodpovedá metóde addEventListener()(toto v kóde predstavuje silu na prvok):
id = "btn" type = "button" onclick = "console.log(this.id)" > // zobrazenie hodnoty id hodnoty prvku v konzolePri stlačení na prvok
Venujte pozornosť dôležitému momentu, hodnote tohto uprostred funkcie myFunc() Odošleme ho do globálneho objektu Window, inak v tomto prípade nastavíme hodnotu na undefined, čo znamená, že je zadaný striktný režim ( prísny režim).
Aby ste odovzdali požadovaný kontext, môžete porovnať metódu call() objektu Function, ktorá vám umožňuje volať (pozrieť) funkciu ako metódu objektu, pričom nastavíte kontext (toto) pre zadanú hodnotu, odovzdanie v potrebných argumentoch:
id="btn" type="button" onclick="myFunc.call( toto)"> <-- добавляем атрибут событий onclick -->V takom prípade, keď zavoláte pod, konzola zobrazí hodnotu globálneho atribútu prvku, ktorý vyvolal pod.
V týchto článkoch sa môžeme pozrieť na rôzne spôsoby, pomocou ktorých sa môžete prihlásiť na odber podprvkov webovej stránky. Jedným zo spôsobov, ako založiť na vlastných atribútoch HTML, ďalšie dva spôsoby sú prostredníctvom JavaScriptu s dodatočným zapnutím alebo pomocou metódy addEventListener().
Ako môžem predplatiť poplatok?
Predplatné pod cez HTML
Tsei sposib ґruntuєtsya na atribút vikoristannі, ktorý môže vyzerať na [podіya], de [podіya] - tse im'ya spev podії.
Základné funkcie: pridajte do prvku jeden atribút (napríklad: onclick - de: on znamená sub a click - typ sub) k hodnotám, ktoré nahrádzajú operátor alebo funkciu. Tento operátor alebo funkcia sa skontroluje pri aktuálnej hodnote prvku.
Napríklad pridajte kliknutie na podtlačidlo, keď sa objaví, zobrazí sa výzva na metódu upozornenia pomoci:
Keďže je potrebné označiť kód vo vzorovom kóde, je potrebné označiť funkciu.
Napríklad pre orientáciu je tu širší zadok s rôznymi funkciami:
Napríklad pridajte kliknutie na podtlačidlo, keď je nastavené, funkcia sa zobrazí:
Táto možnosť prihlásenia sa na odber sa neodporúča, pretože wine nielenže charakterizuje HTML kód, ale môže byť aj definovaný, prepojený so zástupnými znakmi objektu udalosti, kľúčovým slovom this a in.
Tento spôsob prihlásenia na odber sub sa vykonáva prostredníctvom JavaScriptu za pomoci prvku autority na [sub] . Hlavný princíp tejto metódy sa používa v ofenzíve:
Napríklad pridajte k tlačidlu, ktoré môže id="myButton" kliknúť , keď je nastavené, funkcia sa zobrazí:
//Nájdite prvok na podpoložke, ak chcete predplatiť var myButton = document.getElementById("myButton"); //pridať objektu silu, ktorú môže mať na[pod_ya] //keď je kliknutie nastavené, funkcia myFunction je vypnutá myButton.onclick = myFunction; //funkcia myFunction function myFunction() ( //kód funkcie //... )
Ak je oprávnenie nastavené cez atribút, prehliadač pri čítaní HTML kódu oprávnenie automaticky vytvorí. Tobto. prehliadač pratsyuє z podіyami zriedka o pomoc vіdpovіdnih orgánov objektu (prvku).
Yakshcho Podpíšete sa na dne iným spôsobom, tobto. cez atribút a s dodatočným výkonom, potom bude mať prehliadač viac možností na implementáciu sub, žmurkne s dodatočným výkonom. Neodporúča sa prihlásiť sa na odber podії lepšie pre pomoc úradov objektu (prvku), neodporúča sa vyhrať atribúty na tieto účely.
Prihlásenie sa na odber cez JavaScript za pomoci metódy addEventListener
Tento spôsob prihlásenia na odber sub sa okrem špeciálnej metódy addEventListener vykonáva aj prostredníctvom kódu JavaScript. Tento spôsob platby vopred je najlepší a odporúčaný štandardom.
Metóda priradenia addEventListener na pridanie poslucháča (počúvača) k poslucháčovi skladby (udalosti) k prvku a spätné volanie, keď k nemu dôjde. Okrem metódy addEventListener existuje ešte jedna metóda removeEventListener, ktorá sa používa na účely tejto funkcie. odposluch.
Syntax metód addEventListener a removeEventListener je:
Element.addEventListener(udalosť, spätné volanie, fáza); element.removeEventListener(udalosť, spätné volanie, fáza);
Metóda addEventListener má 3 parametre:
Napríklad použitie anonymnej funkcie na spracovanie čiastkového „kliknutia“:
Element.addEventListener("kliknutie", funkcia ( //... ));
Napríklad použitie funkcie myFunction() na spracovanie čiastkového „kliknutia“:
Element.addEventListener("click", myFunction); //funkcia myFunction function myFunction() ( //... )
Nasledovníka, ktorého ste pridali do pomocnej metódy addEventListener(), možno v prípade potreby odstrániť z pomocnej metódy removeEventListener(). Vyhľadávač je možné vidieť iba v takom prípade, ako v metóde addEventListener() úloh v pomenovanej funkcii. Hoci ste v metóde addEventListener() nastavili vyhľadávanie zdanlivo anonymnej funkcie, za pomocnou metódou removeEventListener() ju nevidíte.
Napríklad pridajte a potom odstráňte rutinu myFunction pre objekt vnoreného dokumentu mousemove:
//pridanie pre obsluhu dokumentu objektu submousemove, priradenia pre funkciu lookalike myFunction document.addEventListener("mousemove",myFunction); //Viditeľnosť rukoväte dokumentu vnoreného dokumentu objektu mousemove, úlohy pre vizuálnu funkciu myFunction document.removeEventListener("mousemove", myFunction);
Document.addEventListener("click",myFunction); function myFunction() ( alert("MILUJEM JAVASCRIPT!"); )
Napríklad pridajte kropenie údajových listov, ktoré zvíťazia v prípade náporu v oblasti, do ktorej dokument patrí:
Document.addEventListener("click",myFunction1); document.addEventListener("click",myFunction2);
Napríklad zadajte úchyty objektu dokumentu pre nadchádzajúce podpoložky: kliknutie , prejdenie myšou , presunutie myšou .
Document.addEventListener("mouseover",myFunction1); document.addEventListener("click",myFunction2); document.addEventListener("mouseout",myFunction3);
Napríklad na prenos hodnoty parametrov do vzorkovníka použijeme anonymnú funkciu. Za túto anonymnú funkciu vyhráme jednu funkciu (pomenovanú) za ďalšiu, ktorej odovzdáme potrebné parametre:
Document.addEventListener("click",function() ( myFunction(parameter1, parameter2); ));
Napríklad, keď kliknete na dokument, zmeňte farbu pozadia prvku tela. Obrobnik podії vykonaty v vyglyadі anonymný ї funktsії.
Document.addEventListner("click",function() ( document.body.style.backgroundColor = zelená; ));
Ako správne cvičiť s podia
Cvičenie v JavaScripte s dokumentom HTML (strom DOM) a spracovanie údajov je potrebné iba v prípade, ak má strana záujem:
//Ak je celá stránka obsadená, voláme našu funkciu pageInit window.addEventListener("load", pageInit); //funkcia pageInit() funkcia pageInit() ( //prihlásenie na odber sub)
Window.addEventListener("load", function() ( //prihlásenie na odber sub)
Správnejšie je pracovať nie s titulkami načítania (spustí sa po úplnom načítaní stránky), ale s podponukou DOMContentLoaded, ako sa to stane potom, čo prehliadač zachytí dokument HTML a zobrazí strom DOM. Tobto. Aby ste mohli pracovať so stromom DOM, nie je potrebné kontrolovať, kým všetky prostriedky na strane HTML nestačia prehliadaču na prebudenie stromu DOM.
//Načítal sa HTML dokument a vytvoril sa strom DOM document.addEventListener("DOMContentLoaded", pageInit); //funkcia pageInit() funkcia pageInit() ( //prihlásenie na odber sub)
Vyššie uvedený kód môže byť napísaný kratší, pre ďalšiu anonymnú funkciu:
Document.addEventListener("DOMContentLoaded", function() ( //prihlásenie na odber sub)
Jedna hodina na to, aby ste sa raz podpísali na spodok objektu
Napríklad, podpísať v spodnej časti kliknite raz všetky prvky p. Nahraďte pomocnú funkciu myFunction():
Document.addEventListener("DOMContentLoaded", function() ( var elementsP = document.getElementsByTagName("P"); for (var i=0; i< elementsP.length, i++) { elementsP[i].addEventListener("click", myFunction); } } //функция myFunction() function myFunction() { //... }
Popis
Metóda addEventListener() registruje poslucháča pre cieľový objekt (eventTarget), ktorý bude volaný z rôznych poslucháčov. Užitočným objektom môže byť prvok, dokument, objekt okna alebo iný objekt, ktorý ho podporuje, napríklad XMLHttpRequest.
Syntax
eventTarget.addEventListener(typ_podu, obsluha, fáza);Argumenty
Význam, ktorý sa otáča
Poznámka: Na metódu addEventListener() možno kliknúť viackrát a zaregistrovať ju s ľubovoľným počtom rôznych podobjektov pre rovnaký podtyp v rovnakom cieľovom objekte. Pri odovzdaní objektu budú vyvolané všetky vzorky zaregistrované pre priradený typ predplatného v poradí ich registrácie. skúste
zadok
Spracovanie pod
Klientské programy na mobilnom JavaScripte sú založené na programovacom modeli, ak sú programy podporované subs. Pri tomto štýle programovania webový prehliadač vygeneruje Pod, ak je v dokumente akýkoľvek možný prvok. Napríklad webový prehliadač vygeneruje modul, ak dokončí zachytenie dokumentu, ak odošle správu myši alebo ak stlačí kláves na klávesnici.
Ak program JavaScript volá prvý podtyp pre prvý prvok dokumentu, môže zaregistrovať jednu alebo viac funkcií, ktoré sa budú volať pri volaní podtypu. Roztoč na uvazі, ale to nie je jedinečná vlastnosť webového programovania: všetky programy s grafickým rozhraním coristuvacha robia to isté - neustále kontrolujú, stále to bude (ktoré sa majú skontrolovať na dne), a pozrieť sa na tie, ktoré sú.
Typ pod- Poradie, ktoré označuje typ kutila, ktorý spôsobil pódium. Typ „mousemove“ napríklad znamená, že reproduktor presunul vstup myši. Typ "keydown" znamená, že na klávesnici je stlačený kláves. A typ „načítať“ znamená, že dokument (alebo iný zdroj) bol načítaný z opatrenia. Oskіlki typ podії - je to len riadok, jóga je niekedy nazývaná názvom podії.
Účel- tse predmet, pre ktorý má vinyl podia, alebo pre ktorý sa podia viaže. Ak hovoríte o pódiách, uveďte typ a metódu pódií. Napríklad pod „načítaním“ objektu Window alebo pod prvkom „kliknutie“.
Obrobnik podії- tse funktsіya, yak obroblyaє, chi v_dgukuєtsya podіya. Program musí zaregistrovať svoju funkciu zberača modulov vo webovom prehliadači zadaním typu modulu, na ktorý sa zameriava. Ak má zadaný cieľový objekt podtyp zadaného typu, prehliadač zmení názov. Ak sú podobníci volaní pre akýkoľvek objekt, niekedy sa hovorí, že prehliadač „zničil“ alebo „vygeneroval“ modul.
Predmet podania- tse ob'єkt, po'yazaniya z spievať podієyu i stіtіt іnformatsiyu pre tsiu podіyu. Objekty pod sú odovzdané funkcii obsluhy pod ako argument (napríklad IE8 a staršie verzie, objekt de pod už nie je k dispozícii ako udalosť globálnej zmeny). Fúzové predmety sú pod prúdom typu, čo znamená typ podrozdelenia, tú moc cieľ, Čo určuje spôsob podania.
Pre typ rozdelenia pleti je priradenému objektu priradená množina právomocí. Napríklad predmet zasiahnutia spodnej časti myši vrátane súradníc cieľa myši a predmet zasiahnutia spodnej časti klávesnice na odstránenie informácií o stlačených klávesoch a o modifikátoroch stlačených klávesov. Pre bohaté typy podtypov sú priradené iba štandardné právomoci, ako je typ a cieľ, a žiadne ďalšie základné informácie sa neprenášajú. Pre takéto typy pododdielov je dôležitá samotná prítomnosť pododdielov a ostatné informácie nie sú dôležité.
Rozšírené dno- proces tse, v hodinu, kedy je prehliadač poškodený, pre niektoré objekty, nasledujúce kliknutie a značky sú správne. V rôznych prípadoch, priradené k jednému objektu (napríklad "zaťaženie" objektu okna), je potrebné ich predĺženie dní. Ak však viníte skladbu v prvku dokumentu, rozšíri sa alebo zlúči do kopca pozdĺž stromovej štruktúry dokumentu.