Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Recenzije
  • Jquery. Događaj lebdenja mišem. Događaji prelaska miša, podizanja miša i klika

Jquery. Događaj lebdenja mišem. Događaji prelaska miša, podizanja miša i klika

U ovom članku biti će o Javascript događajima miša. Ovi događaji su vrlo važni u Javascriptu i koriste se na svakom koraku. Prvo ću vas provesti kroz sve standardne događaje miša: mousedown, mouseup, click, dblclick, mousemove i na kraju mouseover i mouseout.

Događaji prelaska miša, podizanja miša i klika

Kada korisnik klikne na element, pokreću se najmanje 3 događaja miša ovim redoslijedom:

  1. mousedown, korisnik je pritisnuo tipku miša na elementu
  2. mouseup, korisnik je otpustio tipku miša na elementu
  3. na elementu su otkriveni događaji klik, mousedown i mouseup

Općenito, događaji mousedown i mouseup korisniji su od događaja klikova. Ponekad korisnik klikne mišem, ali događaj klika se ne aktivira.

Pretpostavimo da korisnik klikne gumb na poveznici, zatim pomakne pokazivač negdje u stranu i otpusti gumb. Veza je obradila samo događaj mousedown. Također možete reproducirati suprotnu situaciju kada korisnik pritisne tipku miša, a zatim pređe mišem iznad veze i otpusti gumb. Aktivira se samo događaj mouseup. U drugim slučajevima, klik se aktivira.

U svakom slučaju, ovaj problem se javlja samo ako to želite.Morate registrirati rukovaoce za onmousedown/up događaje, ali u većini slučajeva je dovoljan klik događaj.

Zapamtite da ako koristite alert "s, preglednik se može zbuniti i izgubiti redoslijed događaja koji se izvršavaju i broj njihovih poziva.

Dblclick događaj (dvostruki klik)

Događaj dblclick mnogo je rjeđi od bilo kojeg drugog događaja miša. Ako ga koristite, pazite da ne koristite onclick i ondblclick obrađivače događaja za iste HTML element... Gotovo je nemoguće utvrditi što je korisnik učinio u ovom slučaju.

Kada korisnik dvaput klikne na element, prvo se pokreće događaj klika, a tek onda dblclick. Korištenje poruka upozorenja ovdje je također iznimno opasno.

Događaj Mousemove

Događaj mousemove radi dobro, ali morate imati na umu da ova vrsta događaja može potrajati neko vrijeme za obradu. Događaj mousemove pokreće se kada korisnik pomakne pokazivač miša za jedan piksel. Čini se da se ništa posebno ne događa, ali unutra postoje složene funkcije, čije izvršenje traje dugo. To može dovesti do nestabilan rad mjesto. Stoga je najbolje koristiti obrađivač događaja onmousemove samo tamo gdje vam je stvarno potreban i svakako ga uklonite u budućnosti.

Element.onmousemove = doSomething;
// kasnije
element.onmousemove = null;

Događaji prelaska miša i povlačenja miša

Uzmimo brzi primjer. Pokušajte zadržati pokazivač miša iznad elemenata sa drugačija pozadina... Element 1 trebao bi lagano treptati kada se lebdi iznad njega - to pokreće događaj prelaska miša.

Element №1

Raspon elementa №2

Ipak, kao što možete vidjeti, ovaj se događaj također pokreće kada zadržite pokazivač miša iznad elementa # 2, pa čak i raspona.

Razlog ovakvog ponašanja je taj što se događaj postavljen na prvom elementu također odnosi na njegove podređene čvorove. Sve je krajnje jasno, ali problem nastaje kada trebamo izvršiti neku radnju kada se pokazivač miša pomakne npr. od element raspona na element broj 2.

"Odakle je došao miš?" ili povezani Target, svojstva fromElement i toElement

Microsoft je stvorio dva uređaja za pohranu ovih informacija:

  • fromElement - odnosi se na element iz kojeg je došao miš.
  • toElement - element do kojeg je došao miš.

Kôd za crossbrowser

Dakle, ako želite znati odakle je došao miš pomoću događaja prelaska miša, upotrijebite sljedeću skriptu:

Funkcija doSomething (e) (
var relTarg = e.relatedTarget || e.fromElement;
}

U slučaju korištenja događaja mouseout (element na koji se pomiče kursor):

Funkcija doSomething (e) (
if (! e) var e = prozor.događaj;
var relTarg = e.relatedTarget || e.toElement;
}

Mouseenter i mouseleave

Microsoft nudi još jedan način rješavanja problema. Stvorili su 2 nova događaja mouseenter i mouseleave. Ovi događaji imaju isto ponašanje kao prelazak mišem i izlazak miša. Jedina razlika je u tome što događaji ne "zaskaču". dječji elementi... Ovo vrlo dobro rješava naš problem prikazan u primjeru.

Pa, to je sve o čemu sam ti htio reći Javascript događaji miševi. Rado ću odgovoriti na vaše komentare.

Dok nastavljamo s istraživanjem jQueryja, prijeđimo na istraživanje teme rukovanja događajima u jQueryju.

Dokumentirajte događaje
Događaji se događaju kada korisnik stupi u interakciju s web stranicom. Događaji su svojevrsna obavijest iz sustava da je korisnik izvršio neku radnju ili da je došlo do nekog stanja unutar samog sustava. Događaji se pokreću klikom na element, pomicanjem miša, pritiskom tipke na tipkovnici, promjenom veličine prozora, završetkom učitavanja web stranice i još mnogo toga. Znajući koje događaje ovaj ili onaj element web-stranice može generirati, možete napisati funkciju za obradu ovog događaja. Na primjer, prilikom slanja podataka obrasca pokreće se događaj onsubmit. Kada se ovaj događaj dogodi, možete provjeriti podatke koje je unio korisnik, te ako ne odgovaraju očekivanim, prekinuti slanje podataka.

Na samom početku knjige već smo razmotrili mogućnost izvršavanja skripti odmah nakon formiranja strukture dokumenta, bez čekanja na učitavanje ostalih elemenata. Kao što već znate, ovaj događaj možete obraditi pomoću metode ready ().


upozorenje ("Dokument je dostupan za izvršavanje skripti");
});

Ako trebate izvršiti bilo koju radnju tek nakon puno opterećenje sam HTML dokument, kao i svi ostali elementi (na primjer, slike), tada možete koristiti metodu load (). Sintaksa metode je sljedeća.

opterećenje (funkcija uzvratiti poziv)

funkcija<Название функции>([Objekt događaja]) (
// ...
}

Prikažimo poruku potvrde i vrstu događaja nakon što se web stranica potpuno učita.

$ (prozor) .load (funkcija (e) (
upozorenje ("Dokument je potpuno učitan");
upozorenje ("Tip događaja" + e.type);
});

Kao rezultat izvršenja, dobit ćemo dvije poruke.

Dokument je u potpunosti učitan
Učitaj vrstu događaja

Metoda unload () koristi se za izvođenje bilo kakvih radnji neposredno prije uklanjanja dokumenta. Metoda ima sljedeću sintaksu.
istovar (funkcija povratnog poziva)

Parametar Funkcija povratnog poziva navodi referencu funkcije u sljedećem formatu.

funkcija<Название функции>([<Объект event>]) {
// ...
}
Prikažimo poruku prije uklanjanja dokumenta.
$ (prozor) .unload (funkcija ()
(upozorenje ("Uđiviše!");
});

U ovom ćemo odjeljku pogledati još dvije korisne metode.

promjena veličine (Povratni poziv) - Izvršava se kada se promijeni veličina prozora.

pomicanje (Povratni poziv) - Izvršava se kada se pomiče sadržaj stranice, dokumenta, prozora ili elementa okvira.

Parametar Funkcija povratnog poziva navodi referencu funkcije u sljedećem formatu.
funkcija Naziv funkcije ([Objekt događaja]) (
// ...
}

Možete upravljati pomicanjem sadržaja prozora i prikazati poruku na sljedeći način.
$ (prozor) .scroll (funkcija () (
upozorenje ("Pomicanje sadržaja prozora");
});

Kao primjer korištenja metode resize (), dohvatite širinu i visinu prozora nakon promjene veličine (listing 6.1).

Listing 6.1. Prikaz širine i visine prozora prilikom promjene veličine



Prikaz širine i visine prozora prilikom promjene</i><br><i>veličina</i><i>





Kada se promijeni veličina prozora u elementu s divl identifikatorom, prikazat će se širina i visina prozora.

Metoda pogreške (Funkcija povratnog poziva) se poziva kada postoji greška na stranici ili u JavaScript kod... Parametar Funkcija povratnog poziva navodi referencu funkcije u sljedećem formatu.

funkcija Naziv funkcije ([Poruka [, URL [, broj retka]]]) (
// ...
}

Ako se pogreška dogodila u objektu prozora, tada će u funkciji povratnog poziva biti dostupna tri parametra:

Poruka - tekst koji opisuje pogrešku;
URL je puni URL dokumenta pogreške.
Broj reda - broj reda s greškom.

Sakriti JavaScript pogreške od korisnika, potrebno je vratiti true unutar callback funkcije.

$ (prozor) .pogreška (funkcija () (
vratiti istinito;
});

Pomoću metode pogreške () možete riješiti pogrešku učitavanja slike.

$ ("img"). pogreška (funkcija () (
$ (ovo) .attr ("src", "noimage.gif");
});

Bilješka
Za ispravan rad Za ovaj primjer, morate skriptu ugostiti na poslužitelju. U suprotnom, događaj neće biti obrađen.

Događaji miša u jQueryju

Sljedeće metode su predviđene za rukovanje događajima miša u jQueryju.

Klik ([Povratni poziv]) - Izvršava se kada se klikne na element ili web stranicu. Ako parametar nije naveden, simulira se klik na element. Onclick događaju prethode dva događaja: onmousedown i onmouseup. Prikažimo poruku nakon klika na bilo koji gumb.
$ ("ibutton") .kliknite (funkcija () (
});

Prebaci () - Omogućuje vam izmjenu više funkcija kada kliknete na element ili web stranicu. Funkcije se pozivaju redom. Prvi klik poziva prvu funkciju, drugi, drugi, a treći, treću. Ako treća funkcija nije definirana, onda se prva funkcija ponovno poziva i tako dalje. Metoda prekidača () ima sljedećem formatu.
prebaci (<Функция обратного вызова 1>,
<Функция обратного вызова 2>[,
<Функция обратного вызова N>])

Učinimo da se boja teksta odlomka promijeni nakon svakog klika mišem.
$ ("p"). prebacivanje
(funkcija () (
$ (ovo) .css ("boja", "crveno");
funkcija () (
$ (ovo) .css ("boja", "plava");
funkcija () (
$ (ovo) .css ("boja", "zelena");
}
) .kliknite ();

Pokušajte kliknuti na odlomak nekoliko puta. Boja teksta će se mijenjati uzastopno od crvene do plave, od plave do zelene, od zelene do ponovno crvene. Obratite pažnju na zadnji redak primjera. Nakon dodjele rukovatelja događajem, onclick događaj se poziva pomoću metode click () bez parametara. Zbog toga će boja pasusa biti crvena od samog početka.

Dblclick ([Funkcija povratnog poziva]) - izvršava se kada dvostruki klik na stavku ili web stranici. Ako parametar nije naveden, simulira se dvostruki klik na element. Ondblclick događaju prethode tri događaja: onmousedown, onmouseup i onclick. Prikažimo poruku kada dvaput kliknete na bilo koji odlomak.
$ ("p"). dblclick (funkcija () (
upozorenje ("Dvaput ste kliknuli");
});

mousedown (Povratni poziv) - Izvršava se kada se pritisne tipka miša na elementu ili stranici. Događaj onmousedown pokreće se prije događaja onmouseup i onclick.

mouseup (Povratni poziv) - Izvršava se kada se otpusti prethodno pritisnuta tipka miša. Događaj onmouseup pokreće se između događaja onmousedown i onclick. Prikažimo poruke kada kliknemo i otpustimo tipku miša iznad odlomka.

$ ("p"). mousedown (funkcija () (
$ ("# divl"). append ("Onmousedown događaj" + "
");
)). mouseup (funkcija () (
$ ("# divl"). append ("Onmouseup događaj" + "
");
});
<р>Klikni me

Mousemove - Izvršava se svaki put kada se miš pomakne. Prikažimo poruku kada pomičemo kursor preko odlomka.

$ ("p") .mousemove (funkcija () (
$ ("# divl"). append ("Onmousemove događaj" + "
");
});

mouseover (Povratni poziv) - Izvršava se kada miš pređe iznad elementa.

mouseout (Povratni poziv) - Izvršava se kada pokazivač miša napusti element. Kada zadržite pokazivač miša iznad linka, boju veze ćemo učiniti crvenom i prikazati poruku, a kada kursor napusti poveznicu, promijenit ćemo njenu boju u crnu i prikazati poruku.

$ ("a") .prelazak miša (funkcija () (
$ (ovo) .css ("boja", "crveno");
$ ("# divl"). append ("Događajprelazak miša na "+"
");

)). mouseout (funkcija () (
$ (ovo) .css ("boja", "crna");
$ ("# divl"). append ("Događajonmouseout "+"
");

}>;

Hover () - omogućuje vam upravljanje lebdenjem i napuštanjem elementa jednom metodom. Ima sljedeći format.
lebdeći (povratni poziv za događaj onmouseover, povratni poziv za događaj onmouseover)

Ponovimo naš prethodni primjer i upotrijebimo metodu hover ().

$ ("a"). zadržite pokazivač miša (funkcija () (
$ (ovo) .css ("boja", "crveno");
$ ("# divl"). append ("Onmouseover događaj" + "
"); },
funkcija () (
$ (ovo) .css ("boja", "crna");
$ ("# divl"). append ("Onmouseout događaj" + "
");
});

Metoda hover () ima još jednu prednost. Ako unutar bloka postoji još jedan blok, tada će se prilikom ulaska pozvati zasebne funkcije unutarnja jedinica a također i pri izlasku iz njega. Kada se koristi metoda lebdenja () ovi pomaci će biti zanemareni (listing 6.2).

Listing 6.2. Specifičnosti korištenja metode lebdenja()



Posebnosti korištenja metode hover ().






Odabranrukovaoci:



Crta 1

2. redak



Funkcijalebdjeti ():



Crta 1

2. redak




Za prvi ugniježđeni blok definirali smo zasebne rukovaoce događajima. Ako pomaknemo pokazivač miša preko cijelog bloka u sredini, dobit ćemo sljedeći slijed događaja.
Događaj prelaska miša
Onmouseout događaj
Događaj prelaska miša
Onmouseout događaj
Događaj prelaska miša
Onmouseout događaj

Za drugi ugniježđeni blok, rukovatelji događaja se dodjeljuju metodom lebdenja (). S istom akcijom dobit ćemo samo dva događaja.
Događaj prelaska miša
Onmouseout događaj

U svim metodama predstavljenim u ovom odjeljku, još nismo shvatili parametre koji im se mogu prenijeti.


// ...
}

Element koji je pokrenuo događaj dostupan je unutar funkcije preko pokazivača this. Imajte na umu da se pokazivač this odnosi na element objektni model dokumentu, a ne na elementu zbirke jQuery. Ako je varijabla navedena u parametru objekta događaja, tada preko nje možete pristupiti svojstvima objekta događaja. Napišimo rukovao klikom miša za dva elementa odjednom. Kada se pritisne, prikažite naziv oznake u elementu s divl identifikatorom.

$ ("str, div "). kliknite (funkcija (npr) {
$ ("# divl")
.append ("Element"+ e.srcElement.tagName +"
");

});

Događaji tipkovnice u jQueryju

JQuery pruža sljedeće metode za rukovanje događajima tipkovnice.

keydown - Izvršava se kada se pritisne tipka na tipkovnici.

keyprcss (funkcija povratnog poziva) - Izvršava se kada se pritisne tipka na tipkovnici. Isto kao keydown (), ali vraća vrijednost koda znakova u Unicode kodiranje... Događaj se generira kontinuirano sve dok korisnik ne otpusti ključ.

keyup (funkcija povratnog poziva) - Izvršava se kada se otpusti prethodno pritisnuta tipka tipkovnice.

Kao parametar funkciji povratnog poziva navodite referencu na funkciju u sljedećem formatu.

funkcija Naziv funkcije ([Objekt događaja]) (
// ...
}

Ako je varijabla navedena u parametru objekta događaja, tada preko nje možete pristupiti svojstvima objekta događaja. Na primjer, da biste dobili kod pritisnute tipke, možete upotrijebiti svojstvo koda tipke. Kao primjer, uzmimo šifru pritisnute tipke i demonstriramo slijed događaja (listing 6.3).

Listing 6.3. Događaji na tipkovnici



Događaji</i><i>tipkovnice</i><i>








Označite tekstni okvir i pritisnite tipku na tipkovnici. Na primjer, pritisnite tipku A s ruskim rasporedom tipkovnice. Kao rezultat toga, dobit ćemo sljedeću poruku.
pritisnuti tipku 70
ključprcss 1072
ključ 7 0

Formirajte događaje u jQueryju

Sljedeće metode osmišljene su za rukovanje događajima obrasca.

fokus ([Callback]) - izvršava se kada element obrasca primi fokus. Ako parametar nije naveden, tada će element dobiti fokus ulaza.

zamućenje ([Callback]) - Izvršava se kada element obrasca izgubi fokus. Ako parametar nije naveden, tada će element izgubiti fokus na unosu.

promjena (Povratni poziv) - Izvršava se kada se podaci u tekstualnom okviru promijene i fokus se premjesti na drugi element obrasca ili kada se podaci obrasca predaju.

dostavi ([Funkcija povratnog poziva]) - Izvršava se kada se podaci obrasca predaju. Ako parametar nije naveden, obrazac će biti poslan.

select ([Callback Function]) - Izvršava se kada je odabran sadržaj elementa. Ako parametar nije naveden, tada će sadržaj elementa biti potpuno odabran.

Kao parametar funkciji povratnog poziva navodite referencu na funkciju u sljedećem formatu.

funkcija Naziv funkcije ([Objekt događaja]) (
// ...
}

Element koji je pokrenuo događaj dostupan je unutar funkcije preko pokazivača this. Imajte na umu da se pokazivač this odnosi na element u objektnom modelu dokumenta, a ne na element u kolekciji jQuery. Ako je varijabla navedena u parametru objekta događaja, tada preko nje možete pristupiti svojstvima objekta događaja.

Pokažimo kako rukovati raznim događajima obrasca (listing 6.4).



Događaji</i><i>oblik</i><i>










!}

id = "btn2">

!}

Dakle, napravili smo obrazac sa tri elementa. Kada odaberete stavku s popisa, prikazat će se poruka s vrijednošću odabrane stavke. Ako odaberete tekstualno polje, boja pozadine će se promijeniti, a ako uklonite fokus iz polja, boja pozadine ponovno će postati bijela. Klikom na gumb Pošalji prikazuje se dijaloški okvir koji možete koristiti za prekid slanja podataka obrasca. Ispod obrasca nalaze se četiri gumba. Prvi gumb vam omogućuje da označite sadržaj tekstualni okvir... Nakon odabira, prikazat će se poruka o odabiru fragmenta, budući da smo definirali odgovarajući rukovatelj. Ista poruka se može dobiti tako da mišem odaberete fragment u polju. Drugi gumb vam omogućuje da postavite fokus unosa na tekstualno polje, a treći - da ga uklonite. Konačno, četvrti gumb služi za slanje podataka obrasca. Klikom na ovaj gumb prikazuje se dijaloški okvir za potvrdu slanja podataka.

JQuery generički obrađivači događaja

U prethodnim odjeljcima pogledali smo specifične rukovaoce događajima. Biblioteka jQuery također vam omogućuje da dodijelite rukovaoce za različite događaje (uključujući vaše vlastite događaje) u jednoj metodi. Sljedeće metode se koriste za dodjelu, pozivanje i uklanjanje rukovatelja.

Vezi (Vrsta događaja [, Podaci], Funkcija povratnog poziva) - omogućuje vam da dodijelite rukovatelja svim elementima zbirke. U parametru Vrsta događaja mogu se navesti sljedeće vrijednosti:
događaji u dokumentu: učitavanje, istovar, promjena veličine, pomicanje, pogreška;
događaji miša: klik, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave;
događaji na tipkovnici: keydown, keyprcss, keyup;
događaji u obliku: fokus, zamućenje, promjena, odabir, slanje.

Već smo razmotrili gotovo sve ove događaje u prethodnim odjeljcima. Na primjer, možete dodijeliti rukovao događajem klika svim gumbima poput ovog.

$ (": gumb") .bind ("klik", funkcija ()
(upozorenje ("Tipritisnutnadugme");
});

Dva su događaja s mišem ostala nerazmotrena. Događaj mouseenter pokreće se kada miš pređe iznad elementa, a događaj napuštanja miša pokreće se kada miš napusti element. Korištenje ovih događaja razlikuje se od rukovanja događajima prelaska miša i izlaska miša. Ako postoji drugi blok unutar bloka, tada će se događaj prelaska miša pokrenuti pri ulasku u unutarnji blok, a događaj mouseout pri izlasku iz njega. Kada koristite događaje mouseenter i mouseleave, ti će se pokreti zanemariti (listing 6.5).

Listing 6.5. Događaji Mouseenter i mouseleave



Događaji</i><i>miša i</i><i>mišjeg lišća

sadržaj = "tekst / html; skup znakova = utf-8">





Događajiprijelaz mišem imouseout:



Crta 1

2. redak



Događajimiša imišji list:



Crta 1

2. redak




Za prvi ugniježđeni blok definirali smo obrađivače događaja za prelazak miša i izlazak miša. Ako pomaknemo pokazivač miša preko cijelog bloka u sredini, dobit ćemo sljedeći slijed događaja.
Događaj prelaska miša
Mouseout događaj
Događaj prelaska miša
Mouseout događaj
Događaj prelaska miša
Mouseout događaj

Za drugi ugniježđeni blok dodijeljeni su rukovatelji događaja mouseenter i mouseleave. S istom akcijom dobivamo samo dva događaja.
Događaj Mouseenter
Događaj Mouseleave

Parametar Event Type može sadržavati kombinaciju događaja odvojenih razmakom. Promijenimo klasu veze pri lebdenju i izbrišite klasu kada kursor napusti.

$ ("a") .bind (" mouseenter mouseleave ", funkcija () (
$ (ovo) .toggleClass ("clsl");
});

Osim toga, možete dodijeliti vlastite događaje pomoću metode bind (). Vaši vlastiti događaji se pozivaju pomoću metoda okidača () i triggerHandler (). Kreirajmo vlastiti događaj i onda ga nazovimo.

$ ("# divl"). bind ("myEvent", funkcija () (
upozorenje ("Upravljanje vlastitim događajem");
});
$ ("# divl"). okidač ("myEvent11); // Podigni događaj

Kao parametar funkciji povratnog poziva navodite referencu na funkciju u sljedećem formatu.

funkcija Naziv funkcije ([Događaj objekta [, Argumenti]]) (
// ...
}

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

});
$ ("# divl"). trigger ("myEvent", ["Naša poruka"]);

Preko izborni parametar Podaci se mogu proslijediti vrijednosti funkciji rukovatelja. Za to, preneseni parametri i vrijednosti moraju biti specificirani na sljedeći način.
{
Parametar1: "Vrijednost1",
Parametar 2: "Vrijednost2",
Parametri: "Vrijednost"
}

Možete dobiti vrijednost proslijeđenog parametra unutar funkcije ovako.
3vrijednost = Objektni događaj.podaci.Parametar

Pogledajmo primjer.

funkcija f_klik (e) (
var str = "msgl = 11 + e.data.msgl +" \ n ";
str + = "msg2 = 11 + e.data.msg2; upozorenje (str);
vratiti false;
}
$ ("a") .bind (
"klik", // Događaj
(msgl: "Poruka 1", msg2: "Poruka 2"), // Naši podaci
f_click // Veza na funkciju
) ;

msgl = Poruka 1
msg2 = Poruka 2

Više rukovatelja može se dodijeliti jednom događaju. U tom će slučaju biti pozvani redoslijedom kojim su definirani.


upozorenje ("Prvorukovalac");
});
$ ("# btnl"). bind ("klik", funkcija () (
upozorenje ("Drugorukovalac");
});

Kada kliknete na stavku s btnl identifikatorom, uzastopno će se prikazati dvije poruke.
Prvi voditelj
Drugi voditelj

Jedan (Vrsta događaja [, Podaci], Funkcija povratnog poziva) - omogućuje vam da dodijelite rukovatelja svim stavkama u zbirci. Metoda je identična bind (), ali događaj se pokreće samo jednom, nakon čega će se rukovalac automatski ukloniti.
$ ("ibutton"). jedan ("klik", funkcija ()
(upozorenje ("Kliknuli ste na gumb");
});

Nakon prvog klika na gumb, prikazat će se navedena poruka, a nakon drugog klika rukovalac se više neće pozivati.

Okidač (Tip događaja [, Podatkovni niz]) - poziva rukovatelja za navedeni događaj.
$ (dokument) .bind ("klik", funkcija () (
// Upozorenje rukovatelja ("Onclick događaj");
});
$ (dokument) .okidač ("klik"); // Pozovite rukovatelja

Ako je naveden niz podataka, on će biti proslijeđen funkciji povratnog poziva u rukovatelju. Svaki parametar će odgovarati jednom elementu niza.

$ ("# divl"). bind ("myEvent", funkcija (e, msgl, msg2) (
$ ("# div2"). dodaj ("DogađajmojDogađaj. "+ msgl +" 11 +
msg2) .dodati ("br");
});
$ ("p"). kliknite (funkcija () (
$ ("# divl"). trigger ("myEvent", ["Message1", "Message2"]);
});

<р>Pritisnite ovdje


Kao rezultat izvršavanja ovog koda, primit ćemo poruku.
MyEvent. Poruka1 Poruka2

TtiggerHandleg (Tip događaja [, Data array]) - poziva rukovatelja za navedeni događaj. Za razliku od metode okidača (), događaj se aktivira samo za prvu stavku u kolekciji. Također, ne događa se zadana radnja kada se koristi metoda tiggerHandleg ().
$ ("obrazac"). bind ("pošalji", funkcija (e, poruka) (
ako (poruka) (
upozorenje ("Obrazac neće biti poslan." + poruka);
}
ostalo (
upozorenje ("Obrazac će biti poslan");
});
$ (": gumb"). bind ("klik", funkcija () (
$ ("obrazac"). triggerHandler ("pošalji", ["Naši podaci"]);
});



U ovom primjeru, klikom na gumb Upravljač pozivima pokreće se rukovatelj događaja onclick. Unutar rukovatelja pozivamo događaj onsubmit i prosljeđujemo svoje podatke. Na temelju tih podataka možemo utvrditi je li događaj pokrenut pritiskom na gumb Pošalji ili smo ga mi umjetno izazvali. Ako je varijabla msg definirana, tada je događaj pozvan pomoću metode triggerHandler (). U tom slučaju, nakon što se poruka prikaže, podaci obrasca neće biti poslani. Ako kliknete gumb Pošalji, varijabla msg neće biti definirana, a nakon što se poruka prikaže, podaci obrasca će biti dostavljeni.

Unbind ([Tip događaja [, naziv funkcije]]) - uklanja rukovaoce događajima za sve elemente kolekcije.
$ ("# btnl"). bind ("klik", funkcija () (
upozorenje ("Kliknuli ste na gumb");
});
$ ("# btnl"). unbind ("klik");
});


Ako navedete naziv funkcije u drugom parametru, tada će se ukloniti samo rukovatelj s tim imenom.

funkcija f__clickl () (
upozorenje ("Funkcija f__clickl ()");
}
funkcija f_click2 () (
upozorenje ("Funkcija f__click2 ()");
}
$ ("# btnl"). bind ("klik", f_clickl); $ ("#btnl")
.bind ("klik", f_click2);
$ ("# btn2"). bind ("klik", funkcija () (
$ ("# btnl"). unbind ("klik", f_click2);
});



Funkcija
f_klik1 ()
Funkcija
f_clJck2 ()

Nakon što kliknete gumb Ukloni, obrađivač događaja s imenom f_click2 bit će uklonjen. Sada, nakon klika na prvi gumb, dobit ćemo samo jednu poruku.
F_clJck1 () Funkcija

Ako parametri nisu navedeni, tada će se ukloniti svi rukovatelji.
događaji. $ ("# btnl"). unbind ();

JQuery metode live () i die ().

Dodjeljivanje rukovatelja događajima pomoću metode bind () ima jedan značajan nedostatak. Ako smo dodijelili rukovatelja, a zatim dodali nove elemente, tada se tim elementima neće dodijeliti rukovatelji događaja.

$ (": gumb"). bind ("klik", funkcija () (
var html = ` `;
$ (ovo) .nakon ("
"+ html);

});

U ovom primjeru dodijelili smo rukovatelj događaja klika za sve gumbe. Nakon klika na gumb, dodaje se novi gumb. Ako pokušate kliknuti na njega, neće doći do promjena.

Metoda live () koristi se za dinamičko dodjeljivanje rukovatelja događajima. Ponovimo naš prethodni primjer i koristimo live () metodu umjesto bind ().

$ (": gumb"). uživo ("klik", funkcija () (
var html = ` `;
$ (ovo) .nakon ("
"+ html);

});

U tom slučaju, kada kliknete na novi gumb, pojavljuje se drugi gumb. Klikom na ovaj gumb stvorit će se drugi gumb itd.

Bilješka
Metoda live () dostupna je od jQueryja 1.3. U starijim verzijama možete koristiti modul Live Query.

Metoda live () ima sljedeći format, live (vrsta događaja, funkcija povratnog poziva)
U parametru Vrsta događaja mogu se navesti sljedeće vrijednosti:
događaji miša: klik, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout;
događaji na tipkovnici: keydown, keyprcss, keyup.

Osim toga, možete dodijeliti vlastite događaje pomoću metode uživo (). Vaši vlastiti događaji se pozivaju pomoću metoda okidača () i okidača-Handler (). Kreirajmo vlastiti događaj i onda ga nazovimo.

$ ("# divl"). live ("myEvent", funkcija () (
upozorenje ("Upravljanje vlastitim događajem");
});
$ (": gumb"). kliknite (funkcija () (
$ ("# divl").okidač ("myEvent"); // Podignite događaj
});

Parametar funkcije povratnog poziva referenca je na funkciju u sljedećem formatu.

funkcija Naziv funkcije ([Događaj objekta [, Argumenti]]) (
// ...
}

Element koji je pokrenuo događaj dostupan je unutar funkcije preko pokazivača this. Imajte na umu da se pokazivač this odnosi na element u objektnom modelu dokumenta, a ne na element u kolekciji jQuery. Ako je varijabla navedena u parametru objekta događaja, tada preko nje možete pristupiti svojstvima objekta događaja. U parametru Argumenti možete odrediti nekoliko varijabli odvojenih zarezima. Možete proslijediti vrijednosti ovim varijablama pomoću drugog parametra metoda okidača () i triggerHandler ().

$ ("# divl"). bind ("myEvent", funkcija (e, msg) (
upozorenje ("Upravljanje vlastitim događajem." + poruka);
});
$ (": gumb"). kliknite (funkcija () (
$ ("# divl"). trigger ("myEvent", ["Našporuka"]);
});

Možete ukloniti rukovao događajima pomoću metode die (). Format metode: die (vrsta događaja [, naziv funkcije])
Bilješka
Metoda die () dostupna je od jQueryja 1.3.

Pogledajmo primjer.

$ ("# btnl"). uživo ("klik", funkcija ()
(upozorenje ("Kliknuli ste na gumb");
});

$ ("# btnl"). die ("klik"); // Uklonite rukovatelj
});

Ako navedete naziv funkcije u drugom parametru, tada će se ukloniti samo rukovatelj s tim imenom.

funkcija f_clickl () (
upozorenje ("Funkcijaf_clickl () ");
}
funkcija f_click2 () (
upozorenje ("Funkcijaf_click2 () ");
$ ("# btnl"). live ("klik", f_clickl);
$ ("# btnl"). live ("klik", f_click2);
$ ("# btn2"). kliknite (funkcija () (
$ ("# btnl"). die ("klik", f_click2);
});

!}
!}

U ovom primjeru dodijelili smo dva rukovatelja događaja klika za prvi gumb. Ako kliknete na gumb Klikni me, prikazat će se dvije poruke.
F_clJck1 () Funkcija
F_clJck2 () Funkcija

Klikom na gumb Ukloni uklanja se rukovatelj događaja f_click2. Sada, nakon klika na prvi gumb, dobit ćemo samo jednu poruku.
Funkcija F_click1 ().

Bubling događaji u jQueryju

Što je događaj koji se pojavljuje? Pogledajmo sljedeći primjer (listing 6.6).

Listing 6.6. Bubljivi događaji



Plutati</i><i>događaji</i><i>





Klikmiš ovdje




U ovom primjeru napisali smo onclick obrađivač događaja za sve elemente stranice. Pokušajmo ovdje kliknuti lijevom tipkom miša na riječ. Kao rezultat, umjesto jednog događaja, dobivamo cijeli niz događaja.
SPAN element
Element P
element TIJELA
HTML element

Drugim riječima, onclick događaj se sekvencijalno prosljeđuje sljedećem roditeljskom elementu. Za oznaku span, roditeljski element je odlomak. Za odlomak, roditeljski element je samo tijelo dokumenta, a za tijelo dokumenta, roditeljski element je html oznaka. Ovo promicanje događaja naziva se bujanje događaja.

Ponekad je potrebno prekinuti bujanje događaja. Da biste to učinili, vratite false unutar funkcije povratnog poziva. Pokažimo to na primjeru (listing 6.7).

Listing 6.7. Prekinite bujanje događaja



Prekinite bujanje događaja





Klikmiš ovdje




Pokušajmo sada kliknuti lijevom tipkom miša na riječ ovdje. Kao rezultat, umjesto četiri događaja, dobivamo samo jedan.
SPAN element

Osim vraćanja false, možete koristiti stopPropagation () metodu objekta događaja za zaustavljanje mjehurića događaja (listing 6.8).

Listing 6.8. Prekidanje mjehurića metodom stopPropagation ().

stopPropagation ()


Prekidanje mjehurića s metodom</i><br><i>stopPropagation ()





Klikmiš ovdje




JQuery zadane radnje i poništiti

Za mnoge događaje dodijeljene su zadane radnje, tj. radnje koje web preglednik poduzima kao odgovor na događaje u dokumentu. Na primjer, kada kliknete na hipervezu, zadana radnja je odlazak na navedeni URL, klik na gumb Pošalji šalje podatke obrasca i tako dalje.

Ponekad je potrebno prekinuti zadane radnje. Na primjer, prilikom slanja podataka obrasca, možete ih provjeriti kako se očekuje i, ako ne ispunjava navedene zahtjeve, prekinuti podnošenje. Da biste to učinili, vratite false unutar funkcije rukovatelja.

Listing 6.9 prikazuje primjer provjere valjanosti da je adresa e-pošte ispravno unesena u polje E-mail i prekida hiperveze ako se pojavi greška.

Listing 6.9. Prekinite zadane radnje



Prekinite zadane radnje






e-pošta:





Kliknite nazatranzicijanaveza



Osim vraćanja false, možete upotrijebiti metodu preventDef ault() objekta događaja za poništavanje zadanih radnji (listing 6.10).

Listing 6.10. Prekidanje događaja metodom preventDefault ().

spriječitiDefault ()


Prekidanje događaja metodom</i><br><i>spriječitiDefault ()






e-pošta:





Kliknite nazatranzicijanaveza



SSH(engleski Secure SHell - "sigurna ljuska") je mrežni protokol na razini sesije koji omogućuje daljinsko upravljanje operativnim sustavom i tuneliranje TCP veza (na primjer, za prijenos datoteka). Po funkcionalnosti je sličan Telnet i rlogin protokolima, ali, za razliku od njih, šifrira sav promet, uključujući i prenesene lozinke. SSH omogućuje izbor različitih algoritama šifriranja. SSH klijenti i SSH poslužitelji dostupni su za većinu mrežnih operacijskih sustava.

SSH omogućuje siguran prijenos gotovo bilo kojeg drugog mrežnog protokola u nesigurnom okruženju. Dakle, ne možete samo raditi na daljinu na računalu putem naredbene ljuske, već i prenositi audio stream ili video preko šifriranog kanala (na primjer, s web kamere). SSH također može koristiti kompresiju prenesenih podataka za naknadnu enkripciju, što je prikladno, na primjer, za daljinsko pokretanje X Window System klijenata.

Većina pružatelja usluga hostinga korisnicima pruža SSH pristup njihovom matičnom imeniku uz naknadu. To može biti prikladno i za rad u naredbenom retku i za daljinsko pokretanje programa (uključujući grafičke aplikacije).

Prvu verziju protokola, SSH-1, razvio je 1995. istraživač Tatu Ulönen s Tehnološkog sveučilišta u Helsinkiju, Finska. SSH-1 je napisan kako bi pružio više privatnosti od rlogin, telnet i rsh protokola. 1996. godine razvijena je sigurnija verzija protokola, SSH-2, koja nije bila kompatibilna sa SSH-1. Protokol je dobio još veću popularnost, a do 2000. godine imao je oko dva milijuna korisnika. Trenutno, izraz "SSH" obično znači točno SSH-2, jer prva verzija protokola sada se praktički ne koristi zbog značajnih nedostataka.

Dobar dan, znatiželjni pretplatnici i gosti bloga. Danas ćemo vas provesti kroz koristan odjeljak u skriptnom jeziku koji se temelji na prototipu, odnosno događaju JavaScript prelaska miša.

Želim da dobro razumijete događaje kao što su klik, mouseup, mousedown, mouseover i druge, shvatite razliku između njih i naučite kako ih koristiti za rješavanje zadataka koji su pred vama. Naravno, nakon svakog ključnog teorijskog materijala, možete pronaći softversku implementaciju primjera. Pa, krenimo!

Sve informacije o događajima miša

Postoji nekoliko događaja za miš koji u potpunosti pokrivaju sve moguće radnje pokazivača na stranici. Među njima su i oni koji se pokreću kada kliknete na objekt, zadržite pokazivač miša iznad njega ili pomaknete pokazivač preko otvorenog prozora. Svi se oni mogu podijeliti u dvije skupine: jednostavne i složene (kompozitne) događaje.

Počnimo jednostavno

Najprije se upoznajmo s jednostavnim događajima. Samo ih je pet. Radi praktičnosti uključio sam opis svakog alata u donju tablicu.

Ime Opis
mousedown Imenovani događaj se poziva kada se pritisne jedna od tipki miša, ali još nije otpuštena.
miša A ovaj se aktivira već kada otpustite prethodno stegnutu tipku.
prelazak mišem Poziva se kada kursor lebdi iznad objekta koji se obrađuje.
mouseout Rukuje radnjom pokazivača koji napušta područje elementa.
mousemove Svako pomicanje pokazivača preko određenog područja pokreće trenutni događaj.

Pa, sada, da konsolidiramo materijal, pogledajmo primjer. Napravio sam mali program u kojem se emocije emotikona mijenjaju pri lebdenju i pomicanju kursora.

Pomaknite pokazivač miša preko slike i ona će se promijeniti.

Sada ga odvedite na stranu i promatrajte promjene

Vrijeme je za grupiranje

Prijeđimo sada na složene poglede. Svaki od ovih događaja uključuje nekoliko jednostavnih. U ovom slučaju, sve komponente složenog događaja ne pale istovremeno, već se poredaju. Stoga ponekad možete primijetiti takvu situaciju da kada brzo kliknete na, na primjer, stavke izbornika na web stranici, klik ponekad ne funkcionira.

Zašto je to tako? Odgovor je dovoljno jednostavan.

Obrada događaja događa se nekom maksimalnom brzinom. I u isto vrijeme, ne zaboravite da se događaji obrađuju redom. To znači da ako prebrzo kliknete na različite elemente, lanac obrade možda neće biti u potpunosti izvršen.

Dakle, složeni događaji navedeni su u nastavku.

Kao što ste već shvatili, složeni događaji donekle pojednostavljuju život programera, uključujući skup potrebnih jednostavnih događaja odjednom. Kao rezultat toga, danas nitko ne može zamisliti uobičajeno rukovanje gumbima ili drugim elementima bez istih klik.

Radi praktičnog upoznavanja s funkcioniranjem gore navedenih događaja izmijenio sam prethodnu aplikaciju. Analiziraj rezultat mog rada.

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 Primjer prelaska miša iznad elementa stranice

Primjer prelaska miša iznad elementa stranice

Kao što vidite, sve je vrlo jednostavno. Te je elemente lako pozvati u kodu i povezati ih s određenim radnjama.

Vrhunski povezani članci