Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Mësimi i Java. Ngjarjet e miut Javascript

Ky artikull do të fokusohet në ngjarjet e miut Javascript. Këto ngjarje janë shumë të rëndësishme në Javascript dhe përdoren në çdo hap të rrugës. Së pari, unë do t'ju kaloj nëpër të gjitha ngjarjet standarde të miut: ulja e mausit, ngritja e miut, klikimi, dblclick, lëvizja e mausit dhe në fund vendosja e mausit dhe largimi i miut.

Ngjarjet e uljes së miut, ngritjes së miut dhe klikimeve

Kur përdoruesi klikon në një element, të paktën 3 ngjarje të miut aktivizohen në këtë renditje:

  1. me uljen e miut, përdoruesi shtypi butonin e miut në element
  2. mouseup, përdoruesi lëshoi ​​butonin e miut në element
  3. Ngjarjet e klikimit, uljes së miut dhe ngjitjes së miut u zbuluan në element

Në përgjithësi, ngjarjet e ngritjes së miut dhe të mouseup janë më të dobishme se ngjarjet e klikimeve. Ndonjëherë përdoruesi klikon miun, por ngjarja e klikimit nuk ndizet.

Supozoni se përdoruesi klikon një buton në një lidhje, më pas lëviz kursorin diku anash dhe lëshon butonin. Lidhja trajtoi vetëm ngjarjen e uljes së miut. Ju gjithashtu mund të riprodhoni situatën e kundërt kur përdoruesi shtyp butonin e mausit dhe më pas rri pezull mbi lidhjen dhe lëshon butonin. Ndizet vetëm ngjarja e mouseup-it. Në raste të tjera, klikimi aktivizohet.

Gjithsesi, ky problem shfaqet vetëm nëse dëshironi.Duhet të regjistroni mbajtës për ngjarjet onmousedown/up, por në shumicën e rasteve mjafton ngjarja e klikimit.

Mos harroni se nëse përdorni alarmin "s", shfletuesi mund të ngatërrohet dhe të humbasë rendin e ngjarjeve që po ekzekutohen dhe numrin e thirrjeve të tyre.

Ngjarja e Dblclick (klikimi i dyfishtë)

Ngjarja dblclick është shumë më pak e zakonshme se çdo ngjarje tjetër e miut. Nëse e përdorni, sigurohuni që të mos përdorni mbajtësit e ngjarjeve onclick dhe ondblclick për të njëjtin element HTML. Është pothuajse e pamundur të përcaktohet se çfarë ka bërë përdoruesi në këtë rast.

Kur përdoruesi klikon dy herë në një element, fillimisht aktivizohet ngjarja e klikimit dhe vetëm më pas dblclick. Përdorimi i mesazheve alarmuese është gjithashtu jashtëzakonisht i rrezikshëm këtu.

Ngjarja e lëvizjes së miut

Ngjarja e lëvizjes së miut funksionon mirë, por duhet të mbani mend se kjo lloj ngjarje mund të marrë pak kohë për t'u përpunuar. Ngjarja e lëvizjes së miut ndizet kur përdoruesi lëviz kursorin e miut një piksel. Duket se asgjë e veçantë nuk po ndodh, por brenda ka funksione komplekse, ekzekutimi i të cilave kërkon një periudhë të gjatë kohore. Kjo mund të çojë në performancë të paqëndrueshme të faqes. Prandaj, është më mirë të përdorni mbajtësin e ngjarjeve onmousemove vetëm aty ku ju nevojitet vërtet dhe sigurohuni që ta hiqni atë në të ardhmen.

Element.onmousemove = bëj Diçka;
// më vonë
element.onmousemove = null;

Ngjarjet e kalimit të miut dhe të largimit të miut

Le të marrim një shembull të shpejtë. Provoni të vendosni miun mbi elementë me prejardhje të ndryshme. Elementi 1 duhet të pulsojë pak kur rri pezull mbi të - kjo ndez ngjarjen e kalimit të miut.

Elementi numër 1

Hapësirë ​​e elementit nr. 2

Megjithatë, siç mund ta shihni, kjo ngjarje aktivizohet gjithashtu kur vendosni kursorin e miut mbi elementin # 2 dhe madje shtrihet.

Arsyeja për këtë sjellje është se ngjarja e vendosur në elementin e parë vlen edhe për nyjet e saj fëmijë. Gjithçka është shumë e qartë, por problemi lind kur duhet të kryejmë disa veprime kur kursori i miut lëviz, për shembull, nga elementi i hapësirës në elementin numër 2.

"Nga erdhi miu?" ose të lidhura Target, fromElement dhe toElement pronat

Microsoft krijoi dy pajisje për të ruajtur këtë informacion:

  • fromElement - i referohet elementit nga erdhi miu.
  • toElement - elementi tek i cili erdhi miu.

Kodi i ndërshfletuesit

Pra, nëse doni të dini se nga erdhi miu duke përdorur ngjarjen e kalimit të miut, përdorni skriptin e mëposhtëm:

Funksioni do Diçka (e) (
var relTarg = e.Target i lidhur || e.ngaElementi;
}

Në rast të përdorimit të ngjarjes së nxjerrjes së miut (elementi në të cilin lëviz kursori):

Funksioni do Diçka (e) (
nëse (! e) var e = dritare.ngjarje;
var relTarg = e.Target i lidhur || e.toElement;
}

Mouseenter dhe mouseleave

Microsoft ofron një mënyrë tjetër për të zgjidhur problemin. Ata krijuan 2 ngjarje të reja mouseenter dhe mouseeleave. Këto ngjarje kanë të njëjtën sjellje si vendosja e miut dhe largimi i miut. I vetmi ndryshim është se ngjarjet nuk “kërcejnë” te fëmijët. Kjo zgjidh shumë mirë problemin tonë të paraqitur në shembull.

Epo, kjo është gjithçka për të cilën doja të flisja në lidhje me ngjarjet e miut Javascript. Unë do të jem i lumtur t'u përgjigjem komenteve tuaja.

Ditë të mbarë, abonentë kureshtarë dhe të ftuar të blogut. Sot do t'ju kalojmë nëpër një seksion të dobishëm në një gjuhë skriptimi të bazuar në prototip, përkatësisht ngjarjen e kalimit të miut JavaScript.

Unë dua që ju të keni një kuptim të mirë të ngjarjeve të tilla si klikimi, ngritja e miut, ulja e mausit, vendosja e miut dhe të tjera, të kuptoni ndryshimin midis tyre dhe të mësoni se si t'i përdorni ato për të zgjidhur detyrat në fjalë. Sigurisht, pas çdo materiali kryesor teorik, mund të gjeni zbatimin e softuerit të shembujve. Epo, le të fillojmë!

Të gjitha informacionet rreth ngjarjeve të miut

Ka disa ngjarje për miun që mbulojnë plotësisht të gjitha veprimet e mundshme të kursorit në faqe. Midis tyre ka nga ato që aktivizohen kur klikoni mbi një objekt, qëndroni pezull mbi të ose lëvizni treguesin mbi një dritare të hapur. Të gjitha ato mund të ndahen në dy grupe: ngjarje të thjeshta dhe komplekse (të përbëra).

Le të fillojmë thjesht

Së pari, le të njihemi me ngjarje të thjeshta. Janë vetëm pesë prej tyre. Për lehtësi, kam përfshirë një përshkrim të secilit mjet në tabelën e bashkangjitur më poshtë.

Emri Përshkrim
mousedown Ngjarja e emërtuar thirret kur shtypet një nga butonat e miut, por nuk është lëshuar ende.
mouseup Dhe kjo aktivizohet tashmë kur lëshoni butonin e mbërthyer më parë.
mbi mouse Thirret kur kursori rri pezull mbi objektin që përpunohet.
mouseout Trajton veprimin e kursorit që largohet nga zona e elementit.
lëvizja e miut Çdo lëvizje e treguesit mbi një zonë të caktuar shkakton ngjarjen aktuale.

Epo, tani, për të konsoliduar materialin, le të shohim një shembull. Krijova një program të vogël në të cilin emocionet e emojit ndryshojnë kur rri pezull dhe lëviz kursorin.

Lëvizni kursorin e miut mbi imazhin dhe ai do të ndryshojë.

Tani merrni atë mënjanë dhe shikoni ndryshimet

Është koha për t'u grupuar

Tani le të kalojmë në pamje komplekse. Secila prej këtyre ngjarjeve përfshin disa të thjeshta. Në këtë rast, të gjithë përbërësit e një ngjarje komplekse nuk ndizen në të njëjtën kohë, por rreshtohen. Prandaj, ndonjëherë mund të vëzhgoni një situatë të tillë që kur klikoni shpejt, për shembull, në artikujt e menysë në një faqe interneti, klikimi ndonjëherë nuk funksionon.

Pse është kështu? Përgjigja është mjaft e thjeshtë.

Përpunimi i ngjarjeve ndodh me një shpejtësi maksimale. Dhe në të njëjtën kohë, mos harroni se ngjarjet përpunohen me radhë. Kjo do të thotë që nëse klikoni shumë shpejt mbi elementë të ndryshëm, zinxhiri i përpunimit mund të mos ekzekutohet plotësisht.

Pra, ngjarjet e përbëra janë renditur më poshtë.

Siç e keni kuptuar tashmë, ngjarjet komplekse thjeshtojnë disi jetën e zhvilluesve, duke përfshirë një sërë ngjarjesh të thjeshta të nevojshme menjëherë. Si rezultat, sot askush nuk mund të imagjinojë trajtimin e zakonshëm të butonave ose elementëve të tjerë pa të njëjtën gjë klikoni.

Për njohje praktike me funksionimin e ngjarjeve të listuara më sipër, modifikova aplikacionin e mëparshëm. Analizoni rezultatin e punës sime.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Shembull i qëndrimit pezull mbi një element faqeje

Shembull i qëndrimit pezull mbi një element faqeje

Siç mund ta shihni, gjithçka është shumë e thjeshtë. Këta elementë janë të lehtë për t'u thirrur në kod dhe për t'i lidhur ato me veprime specifike.

Ngjarjet JQuery ndihmojnë për t'i bërë faqet e internetit interaktive, duke iu përgjigjur veprimeve më të thjeshta të përdoruesit. Ngjarjet përfaqësojnë momentin e saktë në të cilin ndodh diçka, siç është një klikim i mausit.

Quhet momenti në të cilin ka ndodhur ngjarja duke shkaktuar një ngjarje... Ngjarjet mund të aktivizohen kur kryeni operacione të ndryshme në faqen e internetit. Përveç kësaj, vetë shfletuesi mund të bëhet burim i ngjarjeve.

Kontrollimi i faqes së internetit me ngjarje jQuery

1. Ngjarjet e miut

.kliko ()
Kjo ngjarje ndizet kur shtypni dhe lëshoni butonin e mausit. Zbatohet për lidhjet, imazhet, butonat, paragrafët, blloqet, etj.

.dblclick ()
Ngjarja aktivizohet kur klikoni dy herë dhe lëshoni butonin e miut, për shembull, hapni një dosje në desktopin tuaj.

.poshtë miun ()
Ngjarja ndodh kur shtypet butoni i miut, për shembull kur zvarriten artikujt.

.movemove ()
Ngjarja aktivizohet kur lëvizni miun mbi faqe.

.out mouse ()
Ngjarja aktivizohet kur largoni miun nga elementi.

.over mouse ()
Ngjarja ndizet kur kaloni pezull mbi një element (e ngjashme me përdorimin e: pseudo-klasa e pezullimit).

.mouseup ()
Ngjarja ndizet kur lëshoni butonin e miut.

2. Ngjarjet e dokumentit / dritares

.ngarkoj ()
Ngjarja aktivizohet kur shfletuesi ka ngarkuar të gjithë skedarët e faqes në internet: skedarët html, skedarët e jashtëm css dhe javascript, skedarët mediatikë. Kjo mund të jetë e papërshtatshme nëse faqja e internetit përmban një numër të madh skedarësh. Për të zgjidhur këtë problem, mund të përdorni funksionin gati (), i cili ekzekuton skriptet menjëherë pas ngarkimit të kodit html.

.ndryshoni madhësinë ()
Ngjarja ndizet kur ndryshoni madhësinë e dritares së shfletuesit.

.lëvizni ()
Ngjarja aktivizohet kur përdorni shiritat e lëvizjes, ose lëvizni faqen e internetit me timonin e miut ose përdorni tastet e tastierës për këto qëllime (fq lart, fq dn, shtëpi, fund).

.shkarkoj ()
Ngjarja aktivizohet kur jeni gati të largoheni nga faqja, klikoni në një lidhje për të shkuar në një faqe tjetër, mbyllni skedën e faqes ose mbyllni dritaren e shfletuesit.

3. Formoni ngjarje

.turbulloj ()
Ngjarja aktivizohet kur fusha e formës është jashtë fokusit, d.m.th. keni futur të dhënat në një fushë formulari dhe keni shkuar në një fushë tjetër.

.ndrysho ()
Ngjarja aktivizohet kur ndryshon statusi i një fushe formulari, për shembull, kur një artikull zgjidhet nga një meny rënëse.

.fokus ()
Ngjarja aktivizohet kur lundroni në një fushë formulari duke klikuar butonin ose skedën e miut.

.rivendos ()
Ngjarja ju lejon të ktheni formularin në gjendjen e tij origjinale, duke anuluar ndryshimet e bëra.

.zgjidh ()
Ngjarja aktivizohet kur zgjidhni tekst brenda kutisë së tekstit të formularit.

.paraqit ()
Ngjarja aktivizohet kur dorëzoni një formular të plotësuar duke klikuar butonin Submit ose duke shtypur tastin Enter ndërsa kursori është i pozicionuar në një kuti teksti.

4. Ngjarjet e tastierës

.keydown ()
Ngjarja ndizet kur shtypet një tast, përpara ngjarjes së shtypjes së tastit.

.shtypja e tastierës ()
Ngjarja aktivizohet kur shtypni një buton derisa ta lëshoni tastin.

.keyup ()
Ngjarja aktivizohet kur lëshoni çelësin.

5. Ngjarjet jQuery

.Hover ()
Ky funksion funksionon si një ngjarje, duke ju lejuar të zgjidhni në të njëjtën kohë dy probleme që lidhen me ngjarjen e kthimit të treguesit të mausit dhe ngjarjen e heqjes së treguesit të miut në lidhje me objektin e zgjedhur. Struktura kryesore e funksionit:
$ ("# përzgjedhës") hover (funksioni1, funksioni2);

.ndërroj ()
Ngjarja funksionon në mënyrë të ngjashme me ngjarjen hover (), me ndryshimin që ngjarja aktivizohet nga një klikim i mausit. Për shembull, mund të hapni një menu me një klik dhe të fshiheni me një të dytë.

6. Objekti i ngjarjes

Kur aktivizohet një ngjarje, shfletuesi ruan informacionin në lidhje me të objekt ngjarjeje... Objekti i ngjarjes përmban të dhënat e mbledhura në kohën kur ndodhi ngjarja. Ngjarja trajtohet duke përdorur një funksion, dhe objekti i kalohet funksionit si argument - ndryshorja evt (mund të përdorni edhe ngjarjen ose thjesht e si emër të ndryshores). Për të hyrë në argument, duhet të shtoni emrin e parametrit në funksion. Brenda këtij funksioni, ju mund të përdorni veçori të ndryshme duke përdorur sintaksë me pika. Kur thirret funksioni, objekti i ngjarjes ruhet në variablin evt.
Objekti i ngjarjes ka veti të ndryshme, më të zakonshmet prej të cilave përshkruhen në tabelën më poshtë.

Tabela 1. Vetitë e objektit të ngjarjes
Pronës Përshkrim
faqeX Distanca (px) nga treguesi i miut në skajin e majtë të dritares së shfletuesit
faqeY Distanca (px) nga treguesi i miut në skajin e sipërm të dritares së shfletuesit
ekranX Distanca (px) nga treguesi i miut në skajin e majtë të monitorit
ekranY Distanca (px) nga treguesi i miut në skajin e sipërm të monitorit
ShiftKey E VËRTETË nëse tasti SHIFT është shtypur kur ka ndodhur ngjarja
e cila Përdoret për të përcaktuar kodin numerik të tastit të shtypur (së bashku me shiftKey)
objektiv Do të thotë që objekti i ngjarjes është klikuar me një buton të miut (për shembull, për një ngjarje klikimi ())
të dhëna Objekti i përdorur me funksionin bind () për të kaluar të dhëna në funksionin e trajtimit të ngjarjeve

Ndërsa vazhdojmë eksplorimin tonë të jQuery, le të kalojmë në eksplorimin e temës së trajtimit të ngjarjeve në jQuery.

Ngjarjet e dokumentit
Ngjarjet ndodhin kur përdoruesi ndërvepron me faqen e internetit. Ngjarjet janë një lloj njoftimi nga sistemi që përdoruesi ka kryer ndonjë veprim ose se një gjendje ka ndodhur brenda vetë sistemit. Ngjarjet aktivizohen duke klikuar një element, duke lëvizur miun, duke shtypur një tasti të tastierës, duke ndryshuar madhësinë e një dritareje, duke përfunduar ngarkimin e një faqe në internet dhe më shumë. Duke ditur se çfarë ngjarjesh mund të gjenerojë ky apo ai element i faqes në internet, mund të shkruani një funksion për të trajtuar këtë ngjarje. Për shembull, kur dorëzohen të dhënat e formularit, ngjarja onsubmit ngrihet. Kur ndodh kjo ngjarje, ju mund të kontrolloni të dhënat e futura nga përdoruesi dhe nëse ato nuk përputhen me atë të pritur, anuloni dërgimin e të dhënave.

Që në fillim të librit, ne kemi konsideruar tashmë mundësinë e ekzekutimit të skripteve menjëherë pas formimit të strukturës së dokumentit, pa pritur ngarkimin e elementeve të tjerë. Siç e dini tashmë, ju mund ta trajtoni këtë ngjarje duke përdorur metodën gati ().


alarm ("Dokumenti është i disponueshëm për ekzekutimin e skripteve");
});

Nëse duhet të kryeni ndonjë veprim vetëm pasi vetë dokumenti HTML të jetë ngarkuar plotësisht, si dhe të gjithë elementët e tjerë (për shembull, imazhet), atëherë mund të përdorni metodën e ngarkesës (). Sintaksa e metodës është si më poshtë.

ngarkimi (funksioni i kthimit të thirrjes)

funksionin<Название функции>([Objekti i ngjarjes]) (
// ...
}

Le të shfaqim mesazhin e konfirmimit dhe llojin e ngjarjes pasi faqja e internetit të jetë ngarkuar plotësisht.

$ (dritare) .load (funksioni (e) (
alarm ("Dokumenti është ngarkuar plotësisht");
alarm ("Lloji i ngjarjes" + е.lloj);
});

Si rezultat i ekzekutimit, ne do të marrim dy mesazhe.

Dokumenti është i ngarkuar plotësisht
Ngarko llojin e ngjarjes

Metoda e shkarkimit () përdoret për të kryer çdo veprim menjëherë përpara shkarkimit të dokumentit. Metoda ka sintaksën e mëposhtme.
shkarkoj (funksioni i kthimit të thirrjes)

Parametri Callback Function specifikon një referencë funksioni në formatin e mëposhtëm.

funksionin<Название функции>([<Объект event>]) {
// ...
}
Le të shfaqim mesazhin përpara se të shkarkojmë dokumentin.
$ (dritare) .shkarko (funksioni ()
(Alarmi ("Hyni brendamë shumë!");
});

Në këtë seksion, ne do të shohim dy metoda më të dobishme.

ndryshimi i madhësisë (Callback) - Ekzekutohet kur madhësia e dritares ndryshohet.

lëviz (Callback) - Ekzekutohet kur përmbajtja e një elementi faqeje, dokumenti, dritareje ose kornize lëviz.

Parametri Callback Function specifikon një referencë funksioni në formatin e mëposhtëm.
Emri i funksionit ([Objekti i ngjarjes]) (
// ...
}

Ju mund të trajtoni lëvizjen e përmbajtjes së dritares dhe të shfaqni mesazhin si më poshtë.
$ (dritare) .lëviz (funksioni () (
alarm ("Lëvizja e përmbajtjes së dritares");
});

Si shembull i përdorimit të metodës së ndryshimit të madhësisë (), merrni gjerësinë dhe lartësinë e dritares pas ndryshimit të madhësisë së saj (Lista 6.1).

Listimi 6.1. Shfaqja e gjerësisë dhe lartësisë së dritares kur ndryshoni madhësinë



Shfaqja e gjerësisë dhe lartësisë së dritares në ndryshim</i><br><i>madhësia</i><i>





Kur madhësia e dritares ndryshohet në elementin me identifikuesin divl, do të shfaqen gjerësia dhe lartësia e dritares.

Metoda e gabimit (Callback) thirret kur ka një gabim në faqe ose JavaScript. Parametri Callback Function specifikon një referencë funksioni në formatin e mëposhtëm.

Emri i funksionit ([Mesazhi [, URL [, numri i linjës]]]) (
// ...
}

Nëse gabimi ka ndodhur në objektin e dritares, atëherë tre parametra do të jenë të disponueshëm në funksionin e kthimit të thirrjes:

Mesazh - tekst që përshkruan gabimin;
URL-ja është URL-ja e plotë e dokumentit të gabimit.
Numri i rreshtit - numri i rreshtit me gabim.

Për të fshehur gabimet e JavaScript nga përdoruesit, kthejeni true brenda funksionit të kthimit të thirrjes.

$ (dritare) .gabim (funksioni () (
kthehu i vërtetë;
});

Duke përdorur metodën e gabimit (), mund të trajtoni gabimin e ngarkimit të imazhit.

$ ("img"). gabim (funksion () (
$ (kjo) .attr ("src", "noimage.gif");
});

shënim
Që ky shembull të funksionojë siç duhet, duhet të vendosni skriptin në server. Përndryshe, ngjarja nuk do të përpunohet.

Ngjarjet e miut në jQuery

Metodat e mëposhtme janë dhënë për trajtimin e ngjarjeve të miut në jQuery.

Kliko ([Callback]) - Ekzekutohet kur klikohet një element ose faqe interneti. Nëse parametri nuk është i specifikuar, ai do të simulojë një klikim në element. Ngjarja onclick paraprihet nga dy ngjarje: onmousedown dhe onmouseup. Le të shfaqim një mesazh pasi të klikojmë në ndonjë buton.
$ ("buton") .kliko (funksioni () (
});

Toggle () - Ju lejon të alternoni funksione të shumta kur klikoni në një element ose faqe interneti. Funksionet thirren me radhë. Klikimi i parë thërret funksionin e parë, i dyti, i dyti dhe i treti, i treti. Nëse funksioni i tretë nuk është i përcaktuar, atëherë funksioni i parë thirret përsëri, e kështu me radhë. Metoda e ndërrimit () ka formatin e mëposhtëm.
ndërroj (<Функция обратного вызова 1>,
<Функция обратного вызова 2>[,
<Функция обратного вызова N>])

Le të bëjmë që ngjyra e tekstit të paragrafit të ndryshojë pas çdo klikimi të mausit.
$ ("p"). ndërroni
(funksioni () (
$ (kjo) .css ("ngjyra", "e kuqe");
funksioni () (
$ (kjo) .css ("ngjyrë", "blu");
funksioni () (
$ (kjo) .css ("ngjyrë", "gjelbër");
}
) .kliko ();

Provoni të klikoni mbi paragrafin disa herë. Ngjyra e tekstit do të ndryshojë në mënyrë sekuenciale nga e kuqe në blu, nga blu në jeshile, nga jeshile në të kuqe përsëri. Kushtojini vëmendje rreshtit të fundit të shembullit. Pas caktimit të një mbajtësi të ngjarjeve, ngjarja onclick thirret duke përdorur metodën click () pa parametra. Për këtë arsye, ngjyra e paragrafit do të jetë e kuqe që në fillim.

Dblclick ([Funksioni i kthimit të thirrjes]) - Ekzekutohet kur klikoni dy herë një element ose faqe interneti. Nëse parametri nuk është i specifikuar, ai do të simulojë një klik të dyfishtë në element. Ngjarja ondblclick paraprihet nga tre ngjarje: onmousedown, onmouseup dhe onclick. Le të shfaqim një mesazh kur klikoni dy herë në ndonjë paragraf.
$ ("p"). dblclick (funksioni () (
alarm ("Ke klikuar dy herë");
});

mousedown (Callback) - Ekzekutohet kur shtypet butoni i mausit në një element ose faqe. Ngjarja onmousedown ndizet përpara ngjarjeve onmouseup dhe onclick.

mouseup (Callback) - Ekzekutohet kur butoni i mausit i shtypur më parë lirohet. Ngjarja onmouseup ndizet midis ngjarjeve onmousedown dhe onclick. Le të shfaqim mesazhe kur klikojmë dhe lëshojmë butonin e miut mbi një paragraf.

$ ("p"). ul mouse (funksion () (
$ ("# divl"). shtoj ("Ngjarja Onmousedown" + "
");
)) mouseup (funksioni () (
$ ("# divl"). append ("Ngjarja Onmouseup" + "
");
});
<р>Klikoni mua

Mousemove - Ekzekutohet sa herë që lëviz miu. Le të shfaqim një mesazh kur lëvizni kursorin mbi një paragraf.

$ ("p") .mousemove (funksioni () (
$ ("# divl"). shtoj ("Ngjarja Onmousemove" + "
");
});

mouseover (Callback) - Ekzekutohet kur miu rri pezull mbi element.

mouseout (Callback) - Ekzekutohet kur kursori i miut largohet nga elementi. Kur rri pezull mbi lidhjen, ne do ta bëjmë ngjyrën e lidhjes të kuqe dhe do të shfaqim mesazhin, dhe kur kursori largohet nga lidhja, ne do ta ndryshojmë ngjyrën e saj në të zezë dhe do të shfaqim mesazhin.

$ ("a") .over mouse (funksioni () (
$ (kjo) .css ("ngjyra", "e kuqe");
$ ("# divl"). shtoj ("Ngjarjembi mouse "+"
");

)) mouseout (funksioni () (
$ (kjo) .css ("ngjyrë", "e zezë");
$ ("# divl"). shtoj ("Ngjarjeonmouseout "+"
");

}>;

Hover () - ju lejon të trajtoni pezullimin dhe lënien e një elementi me një metodë të vetme. Ka formatin e mëposhtëm.
rri pezull (Bashkëthyerja e telefonatës për ngjarjen onmouseover, Callback për ngjarjen onmouseout)

Le të ribëjmë shembullin tonë të mëparshëm dhe të përdorim metodën hover ().

$ ("a"). rri pezull (funksioni () (
$ (kjo) .css ("ngjyra", "e kuqe");
$ ("# divl"). shtoj ("Ngjarje Onmouseover" + "
"); },
funksioni () (
$ (kjo) .css ("ngjyrë", "e zezë");
$ ("# divl"). shtoj ("Ngjarja Onmouseout" + "
");
});

Metoda hover () ka një avantazh tjetër. Nëse ka një bllok tjetër brenda bllokut, atëherë funksionet individuale do të thirren kur hyni në bllokun e brendshëm, si dhe kur dilni prej tij. Kur përdorni metodën hover (), këto lëvizje do të shpërfillen (Lista 6.2).

Listimi 6.2. Specifikat e përdorimit të metodës hover()



Specifikat e përdorimit të metodës hover ().






Zgjedhurtrajtuesit:



Linjë 1

Rreshti 2



Funksionirri pezull ():



Linjë 1

Rreshti 2




Për bllokun e parë të mbivendosur, ne kemi përcaktuar mbajtës të veçantë të ngjarjeve. Nëse lëvizim kursorin e miut në të gjithë bllokun në mes, marrim sekuencën e mëposhtme të ngjarjeve.
Ngjarja Onmouseover
Ngjarja Onmouseout
Ngjarja Onmouseover
Ngjarja Onmouseout
Ngjarja Onmouseover
Ngjarja Onmouseout

Për bllokun e dytë të mbivendosur, mbajtësit e ngjarjeve caktohen duke përdorur metodën hover (). Me të njëjtin veprim, do të marrim vetëm dy ngjarje.
Ngjarja Onmouseover
Ngjarja Onmouseout

Në të gjitha metodat e paraqitura në këtë seksion, ne ende nuk kemi kuptuar parametrat që mund t'u kalohen atyre.


// ...
}

Elementi që ngriti ngjarjen është i aksesueshëm brenda funksionit nëpërmjet këtij treguesi. Vini re se ky tregues i referohet një elementi në modelin e objektit të dokumentit, jo një elementi në koleksionin jQuery. Nëse një variabël është specifikuar në parametrin e ngjarjes Object, atëherë përmes saj mund të aksesoni vetitë e objektit të ngjarjes. Le të shkruajmë një mbajtës të klikimeve të miut për dy elementë njëherësh. Kur shtypet, shfaqni emrin e etiketës në element me identifikuesin divl.

$ ("fq, div "). kliko (funksioni (p.sh) {
$ ("# divl")
.shtoj ("Element"+ e.srcElement.tagName +"
");

});

Ngjarjet e tastierës në jQuery

JQuery ofron metodat e mëposhtme për të trajtuar ngjarjet e tastierës.

keydown - Ekzekutohet kur shtypet një tast i tastierës.

keyprcss (Funksioni i kthimit të thirrjes) - Ekzekutohet kur shtypet një tast i tastierës. Njësoj si keydown (), por kthen vlerën e kodit të karakterit Unicode. Ngjarja gjenerohet vazhdimisht derisa përdoruesi të lëshojë çelësin.

tastiera (funksioni i kthimit të telefonatës) - Ekzekutohet kur lëshohet një tast i tastierës i shtypur më parë.

Si parametër për funksionin Callback, ju specifikoni një referencë për një funksion në formatin e mëposhtëm.

Emri i funksionit ([Objekti i ngjarjes]) (
// ...
}

Nëse një variabël është specifikuar në parametrin e ngjarjes Object, atëherë përmes saj mund të aksesoni vetitë e objektit të ngjarjes. Për shembull, për të marrë kodin e tastit të shtypur, mund të përdorni veçorinë e tastit Code. Si shembull, le të marrim kodin e tastit të shtypur dhe të demonstrojmë sekuencën e ngjarjeve (Lista 6.3).

Listimi 6.3. Ngjarjet e tastierës



Ngjarjet</i><i>tastierë</i><i>








Theksoni kutinë e tekstit dhe shtypni një buton në tastierën tuaj. Për shembull, le të shtypim tastin A me paraqitjen e tastierës ruse. Si rezultat, ne do të marrim mesazhin e mëposhtëm.
çelësi 70
keyprcss 1072
tastiera 70

Formoni ngjarje në jQuery

Metodat e mëposhtme janë krijuar për të trajtuar ngjarjet e formës.

fokus ([Callback]) - ekzekutohet kur elementi i formës merr fokusin. Nëse parametri nuk është i specifikuar, atëherë elementi do të marrë fokusin e hyrjes.

blur ([Callback]) - Ekzekutohet kur elementi i formës humbet fokusin. Nëse parametri nuk specifikohet, atëherë elementi do të humbasë fokusin e hyrjes.

ndryshim (Callback) - Ekzekutohet kur të dhënat në kutinë e tekstit ndryshojnë dhe fokusi zhvendoset në një element tjetër të formës, ose kur dorëzohen të dhënat e formularit.

dërgo ([Funksioni i kthimit të thirrjes]) - Ekzekutohet kur dorëzohen të dhënat e formularit. Nëse parametri nuk specifikohet, atëherë formulari do të dorëzohet.

zgjidhni ([Callback Function]) - Ekzekutohet kur zgjidhet përmbajtja e elementit. Nëse parametri nuk specifikohet, atëherë përmbajtja e elementit do të zgjidhet plotësisht.

Si parametër për funksionin Callback, ju specifikoni një referencë për një funksion në formatin e mëposhtëm.

Emri i funksionit ([Objekti i ngjarjes]) (
// ...
}

Elementi që ngriti ngjarjen është i aksesueshëm brenda funksionit nëpërmjet këtij treguesi. Vini re se ky tregues i referohet një elementi në modelin e objektit të dokumentit, jo një elementi në koleksionin jQuery. Nëse një variabël është specifikuar në parametrin e ngjarjes Object, atëherë përmes saj mund të aksesoni vetitë e objektit të ngjarjes.

Le të demonstrojmë se si të trajtojmë ngjarje të ndryshme formash (Lista 6.4).



Ngjarjet</i><i>formë</i><i>










!}

id = "btn2">

!}

Pra, ne kemi krijuar një formë me tre elementë. Kur zgjidhni një artikull nga lista, do të shfaqet një mesazh me vlerën e artikullit të zgjedhur. Nëse zgjidhni një fushë teksti, ngjyra e sfondit do të ndryshojë dhe nëse e hiqni fokusin nga fusha, ngjyra e sfondit do të kthehet sërish e bardhë. Duke klikuar butonin Submit shfaqet një kuti dialogu që mund ta përdorni për të ndërprerë dorëzimin e të dhënave të formularit. Ka katër butona poshtë formularit. Butoni i parë ju lejon të zgjidhni përmbajtjen e kutisë së tekstit. Pas përzgjedhjes, do të shfaqet një mesazh për zgjedhjen e fragmentit, pasi ne kemi përcaktuar mbajtësin e duhur. I njëjti mesazh mund të merret duke përdorur miun për të zgjedhur një fragment në fushë. Butoni i dytë ju lejon të vendosni fokusin e hyrjes në fushën e tekstit, dhe i treti - ta hiqni atë. Së fundi, butoni i katërt është për dërgimin e të dhënave të formularit. Duke klikuar në këtë buton shfaqet një kuti dialogu për të konfirmuar dërgimin e të dhënave.

Trajtuesit e ngjarjeve gjenerike të JQuery

Në seksionet e mëparshme, ne shikuam trajtuesit e ngjarjeve specifike. Biblioteka jQuery ju lejon gjithashtu të caktoni mbajtës për ngjarje të ndryshme (duke përfshirë ngjarjet tuaja) në një metodë. Metodat e mëposhtme përdoren për të caktuar, thirrur dhe hequr mbajtësit.

Lidhja (Lloji i ngjarjes [, Të dhënat], Funksioni i kthimit të thirrjes) - ju lejon të caktoni një mbajtës për të gjithë elementët e koleksionit. Vlerat e mëposhtme mund të specifikohen në parametrin Lloji i ngjarjes:
ngjarjet e dokumentit: ngarkimi, shkarkimi, ndryshimi i madhësisë, lëvizja, gabimi;
Ngjarjet e miut: klikoni, dblclick, ulja e miut, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseeleave;
ngjarjet e tastierës: keydown, keyprcss, keyup;
formoni ngjarjet: fokusimi, turbullimi, ndryshimi, përzgjedhja, dërgimi.

Ne kemi shqyrtuar tashmë pothuajse të gjitha këto ngjarje në seksionet e mëparshme. Për shembull, mund të caktoni një mbajtës të ngjarjeve të klikimeve për të gjithë butonat si ky.

$ (": butoni") .bind ("kliko", funksioni ()
(alarm ("Tie shtypurbutonin");
});

Kanë mbetur dy ngjarje të miut të pashqyrtuara. Ngjarja mouseenter ndizet kur miu rri pezull mbi elementin dhe ngjarja e largimit të miut ndizet kur miu largohet nga elementi. Përdorimi i këtyre ngjarjeve është i ndryshëm nga trajtimi i ngjarjeve të zhvendosjes së miut dhe të zhvendosjes së miut. Nëse një bllok tjetër ekziston brenda bllokut, atëherë ngjarja e kalimit të miut do të aktivizohet kur futet në bllokun e brendshëm dhe ngjarja e daljes së miut kur del prej tij. Kur përdorni ngjarjet e futjes së miut dhe të fletës së miut, këto lëvizje do të shpërfillen (Lista 6.5).

Listimi 6.5. Mouseenter dhe mouseeleave ngjarje



Ngjarjet</i><i>futja e miut dhe</i><i>gjethe miu

përmbajtje = "tekst / html; grup karakteresh = utf-8">





Ngjarjetmouseover dhemouseout:



Linjë 1

Rreshti 2



Ngjarjetfutja e miut dhegjethe miu:



Linjë 1

Rreshti 2




Për bllokun e parë të mbivendosur, ne kemi përcaktuar mbajtësit e ngjarjeve të kalimit të mausit dhe të mouseout. Nëse lëvizim kursorin e miut në të gjithë bllokun në mes, marrim sekuencën e mëposhtme të ngjarjeve.
Ngjarja mbi mouse
Ngjarja e nxjerrjes së miut
Ngjarja mbi mouse
Ngjarja e nxjerrjes së miut
Ngjarja mbi mouse
Ngjarja e nxjerrjes së miut

Për bllokun e dytë të mbivendosur, caktohen mbajtësit e ngjarjeve të futjes së miut dhe të fletës së miut. Me të njëjtin veprim, marrim vetëm dy ngjarje.
Ngjarja e futjes së miut
Ngjarja e gjethes së miut

Parametri Lloji i ngjarjes mund të përmbajë një kombinim ngjarjesh të ndara nga një hapësirë. Le të ndryshojmë klasën e lidhjes në hover dhe ta fshijmë klasën kur kursori të largohet.

$ ("a") .bind (" mouseenter mouseeleave ", funksion () (
$ (kjo) .toggleClass ("clsl");
});

Përveç kësaj, ju mund të caktoni ngjarjet tuaja duke përdorur metodën bind (). Ngjarjet tuaja thirren duke përdorur metodat trigger () dhe triggerHandler (). Le të krijojmë ngjarjen tonë dhe më pas ta quajmë atë.

$ ("# divl"). bind ("myEvent", funksioni () (
alarm ("Trajtimi i ngjarjes suaj");
});
$ ("# divl"). shkas ("myEvent11); // Ngritja e ngjarjes

Si parametër për funksionin Callback, ju specifikoni një referencë për një funksion në formatin e mëposhtëm.

Emri i funksionit ([Ngjarja e objektit [, Argumentet]]) (
// ...
}

$ ("#divl") .bind ("myEvent11, funksioni (e, msg) (

});
$ ("# divl"). trigger ("MyEvent", ["Mesazhi ynë"]);

Duke përdorur parametrin opsional të të dhënave, mund t'i kaloni vlerat një funksioni mbajtës. Për këtë, parametrat dhe vlerat e transmetuara duhet të specifikohen si më poshtë.
{
Parametri 1: "Vlera 1",
Parametri 2: "Vlera 2",
Parametrat: "Vlera"
}

Ju mund të merrni vlerën e parametrit të kaluar brenda funksionit si kjo.
3vlera = Ngjarja e objektit.data.Parametri

Le të shohim një shembull.

funksioni f_click (e) (
var str = "msgl = 11 + e.data.msgl +" \ n ";
str + = "msg2 = 11 + e.data.msg2; alarm (str);
kthej false;
}
$ ("a") .bind (
"kliko", // Ngjarja
(msgl: "Message 1", msg2: "Message 2"), // Të dhënat tona
f_click // Lidhja me funksionin
) ;

msgl = Mesazh 1
msg2 = Mesazhi 2

Për një ngjarje mund të caktohen shumë mbajtës. Në këtë rast, ato do të thirren sipas radhës në të cilën janë përcaktuar.


alarmi ("Së parimbajtës");
});
$ ("# btnl"). bind ("kliko", funksioni () (
alarmi ("E dytambajtës");
});

Kur klikoni mbi artikullin me identifikuesin btnl, dy mesazhe do të shfaqen në mënyrë sekuenciale.
Trajtuesi i parë
Trajtuesi i dytë

Një (Lloji i ngjarjes [, Të dhënat], Funksioni i kthimit të thirrjes) - ju lejon të caktoni një mbajtës për të gjithë artikujt në koleksion. Metoda është identike me lidhjen (), por ngjarja ndizet vetëm një herë, pas së cilës mbajtësi do të hiqet automatikisht.
$ ("buton"). një ("kliko", funksioni ()
(Alarm ("Keni klikuar butonin");
});

Pas klikimit të parë në butonin, do të shfaqet mesazhi i specifikuar, dhe pas klikimit të dytë, mbajtësi nuk do të thirret më.

Trigger (Lloji i ngjarjes [, grupi i të dhënave]) - thërret mbajtësin për ngjarjen e specifikuar.
$ (dokument) .bind ("kliko", funksioni () (
// Sinjalizim i mbajtësit ("Ngjarja Onclick");
});
$ (dokument) .trigger ("kliko"); // Thirrni mbajtësin

Nëse specifikohet një grup të dhënash, atëherë ato do t'i kalojnë funksionit të kthimit të thirrjes në mbajtës. Çdo parametër do të korrespondojë me një element të grupit.

$ ("# divl"). bind ("myEvent", funksion (e, msgl, msg2) (
$ ("# div2"). shtoj ("NgjarjaNgjarja ime. "+ mesazhe +" 11 +
msg2) .append ("br");
});
$ ("p"). kliko (funksioni () (
$ ("# divl"). trigger ("MyEvent", ["Message1", "Message2"]);
});

<р>Shtypni këtu


Si rezultat i ekzekutimit të këtij kodi, ne do të marrim një mesazh.
Ngjarja ime. Mesazhi 1 Mesazhi 2

TtiggerHandleg (Lloji i ngjarjes [, grupi i të dhënave]) - thërret mbajtësin për ngjarjen e specifikuar. Ndryshe nga metoda e këmbëzës (), ngjarja aktivizohet vetëm për artikullin e parë në koleksion. Gjithashtu, asnjë veprim i paracaktuar nuk ndodh kur përdorni metodën tiggerHandleg ().
$ ("formë"). bind ("dorëzo", funksion (e, msg) (
nëse (msg) (
alarm ("Formulari nuk do të dërgohet." + msg);
}
tjetër (
alarm ("Formulari do të dërgohet");
});
$ (": butoni"). bind ("kliko", funksioni () (
$ ("formë"). triggerHandler ("dorëzo", ["Të dhënat tona"]);
});



Në këtë shembull, klikimi i butonit Trajtuesi i thirrjeve aktivizon mbajtësin e ngjarjeve onclick. Brenda mbajtësit, ne thërrasim ngjarjen onsubmit dhe kalojmë të dhënat tona. Bazuar në këto të dhëna, ne mund të përcaktojmë nëse ngjarja është shkaktuar kur është klikuar butoni Submit apo është shkaktuar artificialisht nga ne. Nëse ndryshorja msg është e përcaktuar, atëherë ngjarja thirret duke përdorur metodën triggerHandler (). Në këtë rast, pasi të shfaqet mesazhi, të dhënat e formularit nuk do të dërgohen. Nëse klikoni butonin Submit, ndryshorja msg nuk do të përcaktohet dhe pasi të shfaqet mesazhi, të dhënat e formularit do të dërgohen.

Zhlidh ([Lloji i ngjarjes [, emri i funksionit]]) - heq mbajtësit e ngjarjeve për të gjithë elementët e koleksionit.
$ ("# btnl"). bind ("kliko", funksioni () (
alarm ("Keni klikuar butonin");
});
$ ("# btnl"). unbind ("kliko");
});


Nëse specifikoni emrin e funksionit në parametrin e dytë, atëherë vetëm mbajtësi me atë emër do të hiqet.

funksioni f__clickl () (
alarmi ("Funksioni f__clickl ()");
}
funksioni f_click2 () (
alarmi ("Funksioni f__click2 ()");
}
$ ("# btnl") bind ("click", f_clickl); $ ("#btnl")
.bind ("click", f_click2);
$ ("# btn2"). bind ("kliko", funksioni () (
$ ("# btnl") unbind ("click", f_click2);
});



Funksioni
f_click1 ()
Funksioni
f_clJck2 ()

Pasi të klikoni butonin Remove, trajtuesi i ngjarjeve me emrin f_click2 do të hiqet. Tani, pasi klikojmë në butonin e parë, do të marrim vetëm një mesazh.
Funksioni F_clJck1 ()

Nëse parametrat nuk janë specifikuar, atëherë të gjithë mbajtësit do të hiqen.
ngjarjet. $ ("# btnl"). unbind ();

Metodat JQuery live () dhe die ().

Caktimi i mbajtësve të ngjarjeve duke përdorur metodën bind () ka një pengesë të rëndësishme. Nëse kemi caktuar një mbajtës dhe më pas kemi shtuar elementë të rinj, atëherë asnjë mbajtës ngjarjesh nuk do t'u caktohet atyre elementeve.

$ (": butoni"). bind ("kliko", funksioni () (
var html = ` `;
$ (kjo) .pas ("
"+ html);

});

Në këtë shembull, ne kemi caktuar një mbajtës të ngjarjeve të klikimeve për të gjithë butonat. Pasi të klikoni mbi butonin, shtohet një buton i ri. Nëse përpiqeni të klikoni mbi të, atëherë nuk do të ketë ndryshime.

Metoda live () përdoret për të caktuar në mënyrë dinamike mbajtësit e ngjarjeve. Le të ribëjmë shembullin tonë të mëparshëm dhe të përdorim metodën live () në vend të bind ().

$ (": butoni"). live ("kliko", funksioni () (
var html = ` `;
$ (kjo) .pas ("
"+ html);

});

Në këtë rast, kur klikoni në butonin e ri, shfaqet një buton tjetër. Duke klikuar në këtë buton do të krijohet një buton tjetër, etj.

shënim
Metoda live () ka qenë e disponueshme që nga jQuery 1.3. Në versionet e mëparshme, mund të përdorni modulin Live Query.

Metoda live () ka formatin e mëposhtëm, live (Lloji i ngjarjes, Funksioni i kthimit të thirrjes)
Vlerat e mëposhtme mund të specifikohen në parametrin Lloji i ngjarjes:
Ngjarjet e miut: klikim, dblclick, ul mouse, mouseup, mousemove, mouseover, mouseout;
Ngjarjet e tastierës: keydown, keyprcss, keyup.

Përveç kësaj, ju mund të caktoni ngjarjet tuaja duke përdorur metodën live (). Ngjarjet tuaja thirren duke përdorur metodat trigger () dhe trigger-Handler (). Le të krijojmë ngjarjen tonë dhe më pas ta quajmë atë.

$ ("# divl"). live ("myEvent", funksioni () (
alarm ("Trajtimi i ngjarjes suaj");
});
$ (": butoni"). kliko (funksioni () (
$ ("# divl"). trigger ("myEvent"); // Ngrini ngjarjen
});

Parametri i funksionit të kthimit të thirrjes është një referencë për një funksion në formatin e mëposhtëm.

Emri i funksionit ([Ngjarja e objektit [, Argumentet]]) (
// ...
}

Elementi që ngriti ngjarjen është i aksesueshëm brenda funksionit nëpërmjet këtij treguesi. Vini re se ky tregues i referohet një elementi në modelin e objektit të dokumentit, jo një elementi në koleksionin jQuery. Nëse një variabël është specifikuar në parametrin e ngjarjes Object, atëherë përmes saj mund të aksesoni vetitë e objektit të ngjarjes. Në parametrin Argumente, mund të specifikoni disa variabla të ndara me presje. Ju mund t'i kaloni vlerat këtyre variablave duke përdorur parametrin e dytë të metodave trigger () dhe triggerHandler ().

$ ("# divl"). bind ("myEvent", funksioni (e, msg) (
alarm ("Trajtimi i ngjarjes suaj." + msg);
});
$ (": butoni"). kliko (funksioni () (
$ ("# divl"). shkas ("MyEvent", ["Ynëmesazh"]);
});

Mund të hiqni një mbajtës ngjarjesh duke përdorur metodën die (). Formati i metodës: die (Lloji i ngjarjes [, emri i funksionit])
shënim
Metoda die () ka qenë e disponueshme që nga jQuery 1.3.

Le të shohim një shembull.

$ ("# btnl"). live ("kliko", funksioni ()
(Alarm ("Keni klikuar butonin");
});

$ ("# btnl"). die ("kliko"); // Hiq mbajtësin
});

Nëse specifikoni emrin e funksionit në parametrin e dytë, atëherë vetëm mbajtësi me atë emër do të hiqet.

funksioni f_clickl () (
alarmi ("Funksionif_clickl ()");
}
funksioni f_click2 () (
alarmi ("Funksionif_click2 ()");
$ ("# btnl"). live ("click", f_clickl);
$ ("# btnl"). live ("click", f_click2);
$ ("# btn2"). kliko (funksioni () (
$ ("# btnl"). die ("click", f_click2);
});

!}
!}

Në këtë shembull, ne kemi caktuar dy mbajtës të ngjarjeve të klikimeve për butonin e parë. Nëse klikoni në butonin Kliko me, do të shfaqen dy mesazhe.
Funksioni F_clJck1 ()
Funksioni F_clJck2 ()

Klikimi i butonit Hiq fshin mbajtësin e ngjarjeve f_click2. Tani, pasi klikojmë në butonin e parë, do të marrim vetëm një mesazh.
Funksioni F_click1 ().

Ngjarjet flluskuese në jQuery

Çfarë është flluska e ngjarjeve? Le të shohim shembullin e mëposhtëm (Lista 6.6).

Listimi 6.6. Ngjarjet flluskuese



Noton</i><i>ngjarjet</i><i>





Klikonimiun këtu




Në këtë shembull, ne kemi shkruar një mbajtës të ngjarjeve onclick për të gjithë elementët e faqes. Le të përpiqemi të klikojmë me të majtën mbi një fjalë këtu. Si rezultat, në vend të një ngjarjeje, marrim një sekuencë të tërë ngjarjesh.
element SPAN
Elementi P
Elementi TRUPI
Elementi HTML

Me fjalë të tjera, ngjarja onclick kalohet në mënyrë sekuenciale te elementi prind tjetër. Për një etiketë span, elementi prind është një paragraf. Për një paragraf, elementi prind është vetë trupi i dokumentit, dhe për një trup të dokumentit, elementi prind është etiketa html. Kjo kalim ngjarjesh quhet flluska e ngjarjeve.

Ndonjëherë flluska e ngjarjeve duhet të ndërpritet. Për ta bërë këtë, ktheni false brenda funksionit të kthimit të thirrjes. Le ta demonstrojmë këtë me një shembull (Lista 6.7).

Listimi 6.7. Ndërprisni flluskimin e ngjarjeve



Ndërprisni flluskimin e ngjarjeve





Klikonimiun këtu




Tani le të përpiqemi të klikojmë me të majtën mbi fjalën këtu. Si rezultat, në vend të katër ngjarjeve, marrim vetëm një.
element SPAN

Përveç kthimit të false, mund të përdorni metodën stopPropagation () të objektit të ngjarjes për të ndaluar shfaqjen e ngjarjeve (Lista 6.8).

Listimi 6.8. Ndërprerja e flluskimit me metodën stopPropagation ().

ndalimi i përhapjes ()


Ndërprerja e flluskimit me metodën</i><br><i>ndalimi i përhapjes ()





Klikonimiun këtu




Veprimet e paracaktuara të JQuery dhe zhbëni

Për shumë ngjarje, caktohen veprimet e paracaktuara, d.m.th. veprimet që ndërmerr shfletuesi i internetit në përgjigje të ngjarjeve në dokument. Për shembull, kur klikoni në një hiperlidhje, veprimi i paracaktuar është të shkoni në URL-në e specifikuar, duke klikuar butonin Submit dërgoni të dhënat e formularit, etj.

Ndonjëherë veprimet e paracaktuara duhet të ndërpriten. Për shembull, kur dorëzoni të dhënat e formularit, mund t'i vërtetoni ato siç pritej dhe, nëse nuk i plotëson kërkesat e specifikuara, anuloni dorëzimin. Për ta bërë këtë, ktheni false brenda funksionit të mbajtësit.

Lista 6.9 tregon një shembull të vërtetimit që adresa e postës elektronike është futur saktë në fushën E-mail dhe ndërprerja e hiperlidhjes nëse haset një gabim.

Listimi 6.9. Ndërpreni veprimet e paracaktuara



Ndërpreni veprimet e paracaktuara






Email:





Klikoni mbipërtranzicionitlidhje



Përveç kthimit të false, mund të përdorni metodën preventDef ault () të objektit të ngjarjes për të anuluar veprimet e paracaktuara (Lista 6.10).

Listimi 6.10. Ndërprerja e ngjarjeve me metodën preventDefault ().

preventDefault ()


Ndërprerja e ngjarjeve me një metodë</i><br><i>preventDefault ()






Email:





Klikoni mbipërtranzicionitlidhje



Të gjitha veprimet e përdoruesit kur ndërveprojnë me aplikacionin reduktohen në lëvizjen e miut, shtypjen e butonave të miut dhe shtypjen e tasteve të tastierës. Konsideroni se si aplikacioni trajton ngjarjet që lidhen me këto manipulime të përdoruesit.

Ngjarjet e miut Sekuenca e ngjarjeve

Komponentët e Delphi përcaktojnë një numër ngjarjesh të miut. Këto janë ngjarjet:

Klikoni me miun OnClick mbi një komponent dhe disa veprime të tjera të përdoruesit.

OnDblClick Klikoni dy herë mbi komponentin.

OnMouseDown Shtypni butonin e mausit mbi komponentin. Është e mundur të dallohen butoni i shtypur dhe koordinatat e kursorit të miut

OnMouseMove Lëvizni kursorin e miut mbi komponentin. Është e mundur të dallohen butoni i shtypur dhe koordinatat e kursorit të miut.

OnMouseUp Lëshimi i butonit të mausit të shtypur më parë mbi komponentin. Është e mundur të dallohen butoni i shtypur dhe koordinatat e kursorit të miut

OnStartDrag Fillon procesin e zvarritjes së një objekti. Njohja e një objekti të zvarritur është e mundur.

OnDragOver Lëviz objektin e zvarritur mbi komponentin. Është e mundur të njihet objekti që tërhiqet dhe koordinatat e kursorit të miut.

OnDragDrop Lëshimi i butonit të mausit të shtypur më parë pas zvarritjes së një objekti Njohja e objektit të tërhequr dhe koordinatat e kursorit të miut është e mundur.

OnEndDrag Një ngjarje tjetër ndodh kur butoni i mausit i shtypur më parë lirohet pasi një objekt është tërhequr zvarrë. Është e mundur të njihet objekti që tërhiqet dhe koordinatat e kursorit të miut.

OnEnter Ngjarja kur elementi merr fokusin nëpërmjet manipulimit të miut, tabelimit ose transferimit programatik të fokusit.

Ngjarja OnExit kur një element humb fokusin si rezultat i manipulimit të miut, tabelimit ose fokusit të butë

OnMouseWheel Një ngjarje kur rrota e miut rrotullohet në cilindo drejtim. Që nga Delphi 5

OnMouseWheelUp Rrotulloni rrotën e miut lart. Ndodh kur rrotullimi nuk trajtohet nga ngjarja OnMouseWheel. Që nga Delphi 5.

OnMouseWheelDown Rrotullon rrotën e miut poshtë. Ndodh nëse rrotullimi nuk trajtohet nga ngjarja OnMouseWheel. Që nga Delphi 5.

Siç mund ta shihni, këto ngjarje mbulojnë çdo manipulim të imagjinueshëm të miut dhe madje kopjojnë shumë prej tyre. Ngjarja më e përdorur Ne klikim. Zakonisht ndodh kur përdoruesi klikon në komponentin, d.m.th. shtypur dhe lëshuar butonin e mausit ndërsa mausi ishte mbi komponentin. Por kjo ngjarje ndodh edhe gjatë disa veprimeve të tjera të përdoruesit. Ndodh nëse:

Artikulli i zgjedhur nga përdoruesi në rrjet, pemë, listë, listë rënëse duke shtypur tastin me shigjetë.

Përdoruesi shtypte shiritin e hapësirës ndërsa butoni ose treguesi kishte fokus.

Përdoruesi shtyp tastin Enter dhe forma aktive ka një buton të paracaktuar të treguar nga vetia E paracaktuar.

Përdoruesi shtyp tastin Esc dhe forma aktive ka një buton ndërprerje të treguar nga vetia Anulo.

Përdoruesi shtypi tastet e shkurtoreve për një buton ose tregues. Për shembull, nëse prona Titulli treguesi shkruhet si "& Bold" dhe simboli "P" nënvizohet, më pas shtypja e kombinimit të tastit Alt-P nga përdoruesi do të shkaktojë ngjarjen Ne klikim në këtë tregues.

Aplikacioni i instaluar në e vërtetë prone Kontrolluar butonat e radios RadioButton.

Aplikacioni ka ndryshuar pronë Kontrolluar tregues Kutia e kontrollit.

Metoda e thirrur Klikoni element menu.

Për formën, ngjarjen Ne klikim ndodh kur përdoruesi klikon në një zonë të zbrazët të formularit ose në një komponent të paarritshëm.

Bollëku i ngjarjeve të lidhura me miun, si dhe dyfishimi aktual i disa prej tyre kërkojnë një kuptim të qartë të sekuencës së ngjarjeve individuale që ndodhin me një ose një veprim tjetër të përdoruesit. Le të shqyrtojmë këto sekuenca.

Në momentin e nisjes së aplikacionit, nga ngjarjet që po shqyrtojmë, ndodh vetëm ngjarja OnEnter në komponentin tek i cili është transferuar fokusi. Kjo ngjarje nuk është e lidhur me ndonjë veprim të përdoruesit, kështu që ne nuk do të ndalemi në të.

Tani le të shohim veprimin më të thjeshtë të përdoruesit: përdorimi i miut për të kaluar fokusin nga një element në tjetrin. Sekuenca e ngjarjeve në këtë rast tregohet në tabelë. një.

Tabela 1. Sekuenca e ngjarjeve të miut gjatë ndërrimit të fokusit

Veprimi i përdoruesit

Lëvizni kursorin e miut brenda komponentit të parë

Shumë ngjarje OnMouseMove në komponentin e parë

Lëvizni kursorin e miut brenda formularit

Shumë ngjarje OnMouseMove në një formë

Lëvizni kursorin e miut brenda komponentit të dytë

Shumë ngjarje OnMouseMove në komponentin e dytë

Duke klikuar miun

OnExit në komponentin e parë

OnEnter në komponentin e dytë

OnMouseDown në komponentin e dytë

Lëshimi i butonit të miut

OnClick në komponentin e dytë

OnMouseUp në komponentin e dytë

Ngjarjet OnMouseMove ndodhin vazhdimisht në procesin e lëvizjes së kursorit të mausit dhe madje pikërisht kur ai dridhet, gjë që është e pashmangshme nëse përdoruesi nuk i heq duart nga miu. Kjo duhet pasur parasysh dhe kjo ngjarje duhet përdorur me shumë kujdes, pasi ndryshe nga të tjerat, ndodh shumë herë.

Siç mund ta shihni nga tabela e mësipërme, çdo veprim i përdoruesit i lidhur me shtypjen ose lëshimin e një butoni të miut çon në një seri ngjarjesh që ndodhin në mënyrë të njëpasnjëshme. Në trajtuesit e ngjarjeve OnMouseDown dhe OnMouseUp, mund të dalloni se cili buton i miut është shtypur dhe në cilën pikë të komponentit ndodhet kursori i miut.

Konsiderohet në tabelë. 1 sekuencë ngjarjesh ndodh nëse në komponentin e dytë vetia DragModeështë e barabartë me dmManual (fillimi manual i procesit drag-and-drop) siç është vendosur si parazgjedhje. Nëse kjo pronë është dmAutomatik(fillimi automatik i procesit drag-and-drop), më pas të gjitha ngjarjet e konsideruara që lidhen me manipulimin e miut zëvendësohen nga sa vijon:

OnMouseDown zëvendësohet me OnStartDrag

Nëse shtypet butoni dhe lëviz kursori i miut, atëherë

OnMouseMove zëvendësohet me ngjarjen OnDragOver të komponentit mbi të cilin lëviz kursori i miut

OnMouseUp Zëvendësohet me ngjarjen OnDragDrop të komponentit, mbi të cilin ka përfunduar zvarritja (nëse komponenti mund të pranojë informacion nga objekti i tërhequr zvarrë), dhe ngjarjen pasuese OnEndDrag të komponentit që është zvarritur

Ngjarjet OneExit dhe OnEnter nuk ndodhin fare, pasi nuk ka ndërrim fokusi. Ngjarja gjithashtu nuk ndodh Ne klikim.

Nëse, në shembullin e paraqitur në tabelën 1, bëhet një klikim në një objekt që është tashmë në fokus në këtë moment, atëherë ngjarjet nuk ndodhin OneExit dhe OnEnter. V Në këtë rast, kur shtypet butoni, ndodh vetëm ngjarja Në MouseDown, dhe kur butoni lëshohet, ngjarjet OnClick dhe OnMouseUp.

Tani le të shohim sekuencën e ngjarjeve kur klikoni dy herë mbi një komponent. Është paraqitur në tabelë. 2. Njohja e butonit të shtypur të miut është ende e mundur vetëm në ngjarje OnMouseDown dhe OnMouseUp. Nëse ju duhet të njihni vetëm një klik të dyfishtë të një butoni të caktuar të miut, atëherë mund, për shembull, të futni një variabël që është një flamur me klikim të dyfishtë, ta vendosni këtë flamur në mbajtësin e ngjarjeve OnDblClick, dhe në trajtuesit e ngjarjeve Në MouseDown ose OnMouseUp kontrolloni këtë flamur dhe, nëse është caktuar, pastroni atë dhe kryeni veprimet e planifikuara.

Tabela 2. Sekuenca e ngjarjeve të miut kur klikoni dy herë mbi një komponent

Veprimi i përdoruesit

Klikimi i parë i miut

Në MouseDown. Është e mundur të dallohen butoni i shtypur dhe koordinatat e kursorit të miut.

Lëshimi i parë i butonit të miut

Klikimi i dytë i miut

Në MouseDown. Është e mundur të dallohen butoni i shtypur dhe koordinatat e kursorit të miut.

Lëshimi i dytë i butonit të miut

OnMouseUp. Është e mundur të dallohen butoni i shtypur dhe koordinatat e kursorit të miut.

Artikujt kryesorë të lidhur