Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Recenzii
  • Jquery. Eveniment de trecere cu mouse-ul. Evenimente cu mouse-ul în jos, sus și clic

Jquery. Eveniment de trecere cu mouse-ul. Evenimente cu mouse-ul în jos, sus și clic

În acest articol va fi despre evenimentele mouse-ului Javascript. Aceste evenimente sunt foarte importante în Javascript și sunt folosite la fiecare pas. În primul rând, vă voi ghida prin toate evenimentele standard ale mouse-ului: mousedown, mouse up, click, dblclick, mousemove și, în final, mouseover și mouseout.

Evenimente cu mouse-ul în jos, sus și clic

Când utilizatorul face clic pe un element, cel puțin 3 evenimente de mouse sunt declanșate în această ordine:

  1. mousedown, utilizatorul a apăsat butonul mouse-ului pe element
  2. mouseup, utilizatorul a eliberat butonul mouse-ului de pe element
  3. evenimentele click, mousedown și mouse up au fost detectate pe element

În general, evenimentele mousedown și mouse up sunt mai utile decât evenimentele clic. Uneori, utilizatorul face clic pe mouse, dar evenimentul clic nu se declanșează.

Să presupunem că utilizatorul face clic pe un buton de pe un link, apoi mută cursorul undeva în lateral și eliberează butonul. Link-ul a gestionat doar evenimentul mousedown. De asemenea, puteți reproduce situația opusă atunci când utilizatorul apasă butonul mouse-ului, apoi trece cu mouse-ul peste link și eliberează butonul. Numai evenimentul mouseup se declanșează. În alte cazuri, se declanșează clic.

Oricum, această problemă apare doar dacă doriți. Trebuie să înregistrați handlere pentru evenimentele onmousedown / up, dar în cele mai multe cazuri evenimentul click este suficient.

Amintiți-vă că, dacă utilizați alerte "-uri, browserul poate deveni confuz și poate pierde ordinea evenimentelor care sunt executate și numărul apelurilor lor.

Eveniment Dblclick (dublu clic)

Evenimentul dblclick este mult mai puțin comun decât orice alt eveniment de mouse. Dacă îl utilizați, asigurați-vă că nu utilizați handlerele de evenimente onclick și ondblclick pentru același element HTML... Este aproape imposibil de determinat ce a făcut utilizatorul în acest caz.

Când utilizatorul face dublu clic pe un element, evenimentul clic este declanșat mai întâi și abia apoi dblclick. Utilizarea mesajelor de alertă este, de asemenea, extrem de periculoasă aici.

Eveniment Mousemove

Evenimentul mousemove funcționează bine, dar trebuie să vă amintiți că procesarea acestui tip de eveniment poate dura ceva timp. Evenimentul mousemove se declanșează atunci când utilizatorul mută cursorul mouse-ului cu un pixel. S-ar părea că nu se întâmplă nimic deosebit, dar în interior există funcții complexe, a căror execuție durează o perioadă lungă de timp. Acest lucru poate duce la muncă instabilă site-ul. Prin urmare, cel mai bine este să utilizați handlerul de evenimente onmousemove numai acolo unde aveți cu adevărat nevoie de el și asigurați-vă că îl eliminați în viitor.

Element.onmousemove = face Something;
// mai tarziu
element.onmousemove = nul;

Evenimente mouseover și mouseout

Să luăm un exemplu rapid. Încercați să treceți mouse-ul peste elemente cu fundal diferit... Elementul 1 ar trebui să clipească ușor când treceți cu mouse-ul peste el - acest lucru declanșează evenimentul mouseover.

Elementul№1

Elementul№2 span

Cu toate acestea, după cum puteți vedea, acest eveniment este declanșat și atunci când treceți cursorul mouse-ului peste elementul # 2 și chiar span.

Motivul acestui comportament este că evenimentul setat pe primul element se aplică și nodurilor sale fii. Totul este extrem de clar, dar problema apare atunci când trebuie să efectuăm o acțiune când cursorul mouse-ului se mișcă, de exemplu, de la element span la elementul #2.

„De unde a venit șoarecele?” sau proprietățile relatedTarget, fromElement și toElement

Microsoft a creat două dispozitive pentru a stoca aceste informații:

  • fromElement - se referă la elementul din care a provenit mouse-ul.
  • toElement - elementul la care a ajuns mouse-ul.

Cod crossbrowser

Deci, dacă doriți să știți de unde a venit mouse-ul folosind evenimentul mouseover, utilizați următorul script:

Funcția face Something (e) (
var relTarg = e.relatedTarget || e.fromElement;
}

În cazul utilizării evenimentului mouseout (elementul către care se deplasează cursorul):

Funcția face Something (e) (
if (! e) var e = window.event;
var relTarg = e.relatedTarget || e.toElement;
}

Mouseenter și mouseleave

Microsoft oferă o altă modalitate de a rezolva problema. Au creat 2 noi evenimente mouseenter și mouseleave. Aceste evenimente au același comportament ca mouseover și mouseout. Singura diferență este că evenimentele nu „sare” pe lângă elemente copil... Acest lucru rezolvă foarte bine problema noastră prezentată în exemplu.

Ei bine, despre asta am vrut să vă spun evenimente Javascript soareci. Voi răspunde cu plăcere la comentariile dumneavoastră.

Pe măsură ce continuăm explorarea jQuery, să trecem la explorarea subiectului gestionării evenimentelor în jQuery.

Evenimente documentate
Evenimentele apar atunci când utilizatorul interacționează cu pagina web. Evenimentele sunt un fel de notificare din partea sistemului că utilizatorul a efectuat o acțiune sau că a apărut o anumită condiție în cadrul sistemului însuși. Evenimentele sunt declanșate făcând clic pe un element, mișcând mouse-ul, apăsând o tastă de la tastatură, redimensionând o fereastră, terminând încărcarea unei pagini web și multe altele. Știind ce evenimente poate genera acest sau acel element al paginii web, puteți scrie o funcție care să gestioneze acest eveniment. De exemplu, la trimiterea datelor din formular, evenimentul onsubmit este declanșat. Când apare acest eveniment, puteți verifica datele introduse de utilizator, iar dacă acestea nu se potrivesc cu cele așteptate, anulați trimiterea datelor.

La începutul cărții, am luat deja în considerare posibilitatea de a executa scripturi imediat după formarea structurii documentului, fără a aștepta încărcarea altor elemente. După cum știți deja, puteți gestiona acest eveniment folosind metoda ready ().


alertă („Documentul este disponibil pentru executarea scripturilor”);
});

Dacă trebuie să efectuați orice acțiune numai după sarcina completa documentul HTML în sine, precum și toate celelalte elemente (de exemplu, imagini), apoi puteți utiliza metoda de încărcare (). Sintaxa metodei este următoarea.

încărcare (Funcția suna inapoi)

funcţie<Название функции>([Obiect eveniment]) (
// ...
}

Să afișăm mesajul de confirmare și tipul de eveniment după ce pagina web este complet încărcată.

$ (fereastră) .încărcare (funcția (e) (
alertă („Documentul este încărcat complet”);
alertă („Tipul eveniment” + е.tip);
});

În urma execuției, vom primi două mesaje.

Documentul este complet încărcat
Încărcați tipul de eveniment

Metoda descărcare () este utilizată pentru a efectua orice acțiuni imediat înainte de descărcarea documentului. Metoda are următoarea sintaxă.
descărcare (funcție de apel invers)

Parametrul Funcție de apel invers specifică o referință de funcție în următorul format.

funcţie<Название функции>([<Объект event>]) {
// ...
}
Să afișăm mesajul înainte de a descărca documentul.
$ (fereastră) .descărcare (funcție ()
(alertă („IntrăMai mult!");
});

În această secțiune, vom analiza alte două metode utile.

redimensionare (Callback) - Se execută când fereastra este redimensionată.

scroll (Callback) - Se execută atunci când conținutul unei pagini, document, fereastră sau element cadru este derulat.

Parametrul Funcție de apel invers specifică o referință de funcție în următorul format.
funcția Nume funcție ([Obiect eveniment]) (
// ...
}

Puteți gestiona derularea conținutului ferestrei și puteți afișa un mesaj ca acesta.
$ (fereastră) .scroll (funcție () (
alertă („Defilarea conținutului ferestrei”);
});

Ca exemplu de utilizare a metodei redimensionare (), obțineți lățimea și înălțimea ferestrei după redimensionarea acesteia (Listing 6.1).

Lista 6.1. Afișarea lățimii și înălțimii ferestrei la redimensionare



Afișarea lățimii și înălțimii ferestrei la modificare</i><br><i>mărimea</i><i>





Când fereastra este redimensionată în elementul cu identificatorul divl, vor fi afișate lățimea și înălțimea ferestrei.

Metoda de eroare (funcția Callback) este apelată atunci când există o eroare pe pagină sau în Cod JavaScript... Parametrul Funcție de apel invers specifică o referință de funcție în următorul format.

funcția Nume funcție ([Mesaj [, URL [, Număr linie]]]) (
// ...
}

Dacă eroarea a apărut în obiectul fereastră, atunci trei parametri vor fi disponibili în funcția de apel invers:

Mesaj - text care descrie eroarea;
URL este adresa URL completă a documentului de eroare.
Număr de linie - numărul de linie cu eroare.

A se ascunde erori JavaScript de la utilizatori, este necesar să returnați adevărat în interiorul funcției de apel invers.

$ (fereastră) .error (funcție () (
returnează adevărat;
});

Folosind metoda erorii (), puteți gestiona eroarea de încărcare a imaginii.

$ ("img"). eroare (funcție () (
$ (acest) .attr ("src", "noimage.gif");
});

Notă
Pentru lucru corect Pentru acest exemplu, trebuie să găzduiți scriptul pe server. În caz contrar, evenimentul nu va fi procesat.

Evenimente mouse în jQuery

Următoarele metode sunt furnizate pentru gestionarea evenimentelor mouse-ului în jQuery.

Faceți clic ([Callback]) - Se execută când se face clic pe un element sau pe o pagină web. Dacă parametrul nu este specificat, acesta va simula un clic pe element. Evenimentul onclick este precedat de două evenimente: onmousedown și onmouseup. Să afișăm un mesaj după ce facem clic pe orice buton.
$ ("ibutton") .click (funcție () (
});

Comutare () - Vă permite să alternați mai multe funcții atunci când faceți clic pe un element sau pe o pagină web. Funcțiile sunt apelate pe rând. Primul clic apelează prima funcție, a doua, a doua și a treia, a treia. Dacă a treia funcție nu este definită, atunci prima funcție este apelată din nou și așa mai departe. Metoda comutare () are următorul format.
comutare (<Функция обратного вызова 1>,
<Функция обратного вызова 2>[,
<Функция обратного вызова N>])

Să modificăm culoarea textului paragrafului după fiecare clic de mouse.
$ ("p"). comutare
(funcția () (
$ (acest) .css („culoare”, „roșu”);
funcția () (
$ (acest) .css („culoare”, „albastru”);
funcția () (
$ (acest) .css („culoare”, „verde”);
}
) .click ();

Încercați să dați clic pe paragraf de câteva ori. Culoarea textului se va schimba succesiv de la roșu la albastru, de la albastru la verde, de la verde la roșu din nou. Acordați atenție ultimului rând al exemplului. După atribuirea unui handler de evenimente, evenimentul onclick este apelat folosind metoda click () fără parametri. Din acest motiv, culoarea paragrafului va fi roșie încă de la început.

Dblclick ([Funcția de apel invers]) - executat când dublu click pe un articol sau pe o pagină web. Dacă parametrul nu este specificat, acesta va simula un dublu clic pe element. Evenimentul ondblclick este precedat de trei evenimente: onmousedown, onmouseup și onclick. Să afișăm un mesaj când faceți dublu clic pe orice paragraf.
$ ("p"). dblclick (funcție () (
alertă („Ați făcut dublu clic”);
});

mousedown (Callback) - Execut atunci când butonul mouse-ului este apăsat pe un element sau pagină. Evenimentul onmousedown se declanșează înainte de evenimentele onmouseup și onclick.

mouseup (Callback) - Se execută când butonul mouse-ului apăsat anterior este eliberat. Evenimentul onmouseup se declanșează între evenimentele onmousedown și onclick. Să afișăm mesaje când facem clic și eliberăm butonul mouse-ului peste un paragraf.

$ ("p"). mousedown (funcție () (
$ ("# divl"). append ("Eveniment Onmousedown" + "
");
)). mouseup (funcție () (
$ ("# divl"). append ("Eveniment Onmouseup" + "
");
});
<р>Click pe mine

Mousemove - Execut ori de câte ori mouse-ul este mutat. Să afișăm un mesaj când deplasăm cursorul peste un paragraf.

$ ("p") .mousemove (funcție () (
$ ("# divl"). append ("Eveniment Onmousemove" + "
");
});

mouseover (Callback) - Se execută când mouse-ul trece peste element.

mouseout (Callback) - Se execută când cursorul mouse-ului părăsește elementul. Când treceți cu mouse-ul peste link, vom face culoarea linkului în roșu și vom afișa mesajul, iar când cursorul iese din link, îi vom schimba culoarea în negru și vom afișa mesajul.

$ ("a") .mouseover (funcție () (
$ (acest) .css („culoare”, „roșu”);
$ ("# divl"). anexează ("Evenimentla trecerea cu mouse-ul „+”
");

)). mouseout (funcție () (
$ (acest) .css („culoare”, „negru”);
$ ("# divl"). anexează ("Evenimentonmouseout „+”
");

}>;

Hover () - vă permite să gestionați flotarea și părăsirea unui element cu o singură metodă. Are următorul format.
hover (Callback pentru evenimentul onmouseover, Callback pentru evenimentul onmouseout)

Să refacem exemplul nostru anterior și să folosim metoda hover ().

$ ("a"). hover (funcție () (
$ (acest) .css („culoare”, „roșu”);
$ ("# divl"). append ("Eveniment la trecerea mouse-ului" + "
"); },
funcția () (
$ (acest) .css („culoare”, „negru”);
$ ("# divl"). append ("Eveniment Onmouseout" + "
");
});

Metoda hover () are un alt avantaj. Dacă în interiorul blocului există un alt bloc, atunci când intrați vor fi apelate funcții separate Unitate interioarăși, de asemenea, la ieșirea din el. Când utilizați metoda hover (), aceste mișcări vor fi ignorate (Listing 6.2).

Lista 6.2. Specificul utilizării metodei hover()



Specificații privind utilizarea metodei hover ().






Selectatmanipulatorii:



Linia 1

Randul 2



Funcţiehover ():



Linia 1

Randul 2




Pentru primul bloc imbricat, am definit handlere de evenimente separate. Dacă mișcăm cursorul mouse-ului pe întregul bloc din mijloc, obținem următoarea secvență de evenimente.
Eveniment la trecerea mouse-ului
Eveniment Onmouseout
Eveniment la trecerea mouse-ului
Eveniment Onmouseout
Eveniment la trecerea mouse-ului
Eveniment Onmouseout

Pentru al doilea bloc imbricat, gestionatorii de evenimente sunt alocați folosind metoda hover (). Cu aceeași acțiune, vom obține doar două evenimente.
Eveniment la trecerea mouse-ului
Eveniment Onmouseout

În toate metodele prezentate în această secțiune, încă nu ne-am dat seama care sunt parametrii care le pot fi transmise.


// ...
}

Elementul care a generat evenimentul este accesibil în interiorul funcției prin intermediul acestui pointer. Rețineți că acest indicator se referă la element model de obiect document și nu pe un element de colecție jQuery. Dacă o variabilă este specificată în parametrul obiect eveniment, atunci prin intermediul acestuia puteți accesa proprietățile obiectului eveniment. Să scriem un handler de clic de mouse pentru două elemente simultan. Când este apăsat, afișați numele etichetei în elementul cu identificatorul divl.

$ ("p, div "). faceți clic (funcție (de ex) {
$ ("# divl")
.apend („Element„+ e.srcElement.tagName +”
");

});

Evenimente de la tastatură în jQuery

JQuery oferă următoarele metode pentru a gestiona evenimentele de la tastatură.

keydown - Se execută când este apăsată o tastă de la tastatură.

keyprcss (Funcția de apel invers) - Se execută atunci când este apăsată o tastă de la tastatură. La fel ca keydown (), dar returnează valoarea codului caracterului în Codificare Unicode... Evenimentul este generat continuu până când utilizatorul eliberează cheia.

keyup (funcția Callback) - Executat atunci când o tastă de la tastatură apăsată anterior este eliberată.

Ca parametru al funcției de apel invers, specificați o referință la o funcție în următorul format.

funcția Nume funcție ([Obiect eveniment]) (
// ...
}

Dacă o variabilă este specificată în parametrul obiect eveniment, atunci prin intermediul acestuia puteți accesa proprietățile obiectului eveniment. De exemplu, pentru a obține codul tastei apăsate, puteți utiliza proprietatea Key Code. De exemplu, să apasăm codul tastei și să demonstrăm succesiunea evenimentelor (Listing 6.3).

Lista 6.3. Evenimente de la tastatură



Evenimente</i><i>tastaturi</i><i>








Evidențiați caseta de text și apăsați o tastă de pe tastatură. De exemplu, să apăsăm tasta A cu aspectul tastaturii rusești. Ca urmare, vom primi următorul mesaj.
apăsarea tastei 70
keyprcss 1072
tastare 7 0

Formează evenimente în jQuery

Următoarele metode sunt concepute pentru a gestiona evenimentele din formular.

focus ([Callback]) - executat atunci când elementul de formular primește focus. Dacă parametrul nu este specificat, atunci elementul va primi focalizarea de intrare.

estompare ([Callback]) - Se execută atunci când elementul formular pierde focalizarea. Dacă parametrul nu este specificat, atunci elementul va pierde focalizarea de intrare.

modificare (Callback) - Se execută atunci când datele din caseta de text se modifică și focalizarea se mută către alt element de formular sau când sunt trimise datele de formular.

submit ([Funcția de apel invers]) - Se execută atunci când datele din formular sunt trimise. Dacă parametrul nu este specificat, atunci va fi trimis formularul.

select ([Funcția de apel invers]) - Se execută când este selectat conținutul elementului. Dacă parametrul nu este specificat, atunci conținutul elementului va fi complet selectat.

Ca parametru al funcției de apel invers, specificați o referință la o funcție în următorul format.

funcția Nume funcție ([Obiect eveniment]) (
// ...
}

Elementul care a generat evenimentul este accesibil în interiorul funcției prin intermediul acestui pointer. Rețineți că acest indicator se referă la un element din modelul obiect document, nu la un element din colecția jQuery. Dacă o variabilă este specificată în parametrul obiect eveniment, atunci prin intermediul acestuia puteți accesa proprietățile obiectului eveniment.

Să demonstrăm cum să gestionăm diverse evenimente de formular (Listing 6.4).



Evenimente</i><i>formă</i><i>










!}

id = "btn2">

!}

Deci, am creat un formular cu trei elemente. Când selectați un articol din listă, va fi afișat un mesaj cu valoarea articolului selectat. Dacă selectați un câmp de text, culoarea de fundal se va schimba, iar dacă eliminați focalizarea din câmp, culoarea de fundal va deveni din nou albă. Făcând clic pe butonul Trimitere, se afișează o casetă de dialog pe care o puteți utiliza pentru a întrerupe trimiterea datelor din formular. Există patru butoane sub formular. Primul buton vă permite să evidențiați conținutul casetă de text... După selecție, va fi afișat un mesaj despre selecția fragmentului, deoarece am definit handlerul corespunzător. Același mesaj poate fi obținut folosind mouse-ul pentru a selecta un fragment din câmp. Al doilea buton vă permite să setați focalizarea de intrare pe câmpul de text, iar al treilea - să-l eliminați. În cele din urmă, al patrulea buton este pentru trimiterea datelor din formular. Făcând clic pe acest buton se afișează o casetă de dialog pentru a confirma trimiterea datelor.

Manageri de evenimente generici JQuery

În secțiunile anterioare, ne-am uitat la manevrele de evenimente specifice. Biblioteca jQuery vă permite, de asemenea, să atribuiți handlere pentru diferite evenimente (inclusiv propriile evenimente) într-o singură metodă. Următoarele metode sunt utilizate pentru a atribui, apela și elimina handler-uri.

Bind (Tip de eveniment [, Date], Funcție de apel invers) - vă permite să atribuiți un handler tuturor elementelor colecției. Următoarele valori pot fi specificate în parametrul Tip de eveniment:
evenimente document: încărcare, descărcare, redimensionare, derulare, eroare;
evenimente mouse: click, dblclick, mousedown, mouse up, mousemove, mouseover, mouseout, mouseenter, mouseleave;
evenimente de la tastatură: keydown, keyprcss, keyup;
formulare evenimente: focalizare, estompare, modificare, selectare, trimitere.

Am luat în considerare deja aproape toate aceste evenimente în secțiunile anterioare. De exemplu, puteți atribui un handler de evenimente de clic tuturor butoanelor ca acesta.

$ (": buton") .bind ("clic", funcția ()
(alertă ("Tupresatpebuton");
});

Au rămas două evenimente ale mouse-ului rămase neconsiderate. Evenimentul mouse-enter se declanșează când mouse-ul trece peste element, iar evenimentul mouse-ul de ieșire se declanșează când mouse-ul părăsește elementul. Utilizarea acestor evenimente este diferită de gestionarea evenimentelor mouseover și mouseout. Dacă în interiorul blocului există un alt bloc, atunci evenimentul mouseover va fi declanșat la intrarea în blocul interior și evenimentul mouseout la ieșirea din acesta. Când utilizați evenimentele mouseenter și mouseleave, aceste mișcări vor fi ignorate (Listing 6.5).

Lista 6.5. Evenimente Mouseenter și mouseleave



Evenimente</i><i>mouseenter și</i><i>mouseleave

conținut = "text / html; set de caractere = utf-8">





Evenimentemouseover șimouseout:



Linia 1

Randul 2



Evenimentemouseenter șimouseleave:



Linia 1

Randul 2




Pentru primul bloc imbricat, am definit manerele de evenimente mouseover și mouseout. Dacă mișcăm cursorul mouse-ului pe întregul bloc din mijloc, obținem următoarea secvență de evenimente.
Eveniment de trecere cu mouse-ul
Eveniment Mouseout
Eveniment de trecere cu mouse-ul
Eveniment Mouseout
Eveniment de trecere cu mouse-ul
Eveniment Mouseout

Pentru cel de-al doilea bloc imbricat, sunt alocați handlerele de evenimente mouseenter și mouseleave. Cu aceeași acțiune, obținem doar două evenimente.
Eveniment Mouseenter
Eveniment Mouseleave

Parametrul Tip de eveniment poate conține o combinație de evenimente separate printr-un spațiu. Să modificăm clasa link-ului la trecerea cursorului și să ștergem clasa când cursorul pleacă.

$ ("a") .bind (" mouseenter mouseleave ", funcția () (
$ (this) .toggleClass ("clsl");
});

În plus, vă puteți atribui propriile evenimente folosind metoda bind (). Evenimentele proprii sunt invocate folosind metodele trigger () și triggerHandler (). Să ne creăm propriul eveniment și apoi să îl sunăm.

$ ("# divl"). bind ("myEvent", funcția () (
alertă („Gestionarea propriului eveniment”);
});
$ ("# divl"). declanșare ("myEvent11); // Ridicați evenimentul

Ca parametru al funcției de apel invers, specificați o referință la o funcție în următorul format.

function Nume functie ([Eveniment obiect [, Argumente]]) (
// ...
}

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

});
$ ("# divl"). trigger ("myEvent", ["Mesajul nostru"]);

Prin intermediul parametru opțional Datele pot fi transmise valori unei funcții de gestionare. Pentru aceasta, parametrii și valorile transmise trebuie specificate după cum urmează.
{
Parametrul 1: „Valoare1”,
Parametrul2: „Valoare2”,
Parametri: „Valoare”
}

Puteți obține valoarea parametrului transmis în interiorul funcției astfel.
3value = Obiect event.data.Parameter

Să ne uităm la un exemplu.

funcția f_click (e) (
var str = "msgl = 11 + e.data.msgl +" \ n ";
str + = "msg2 = 11 + e.data.msg2; alertă (str);
returnează fals;
}
$ ("a") .bind (
„clic”, // Eveniment
(msgl: „Mesajul 1”, msg2: „Mesajul 2”), // Datele noastre
f_click // Link către funcție
) ;

msgl = Mesaj 1
msg2 = Mesajul 2

Mai mulți handler pot fi alocați unui eveniment. În acest caz, acestea vor fi apelate în ordinea în care au fost definite.


alertă („În primul rândmanipulator");
});
$ ("# btnl"). bind ("clic", funcția () (
alertă („Al doileamanipulator");
});

Când faceți clic pe elementul cu identificatorul btnl, două mesaje vor fi afișate secvenţial.
Primul manipulator
Al doilea manipulator

One (Tip eveniment [, Date], Funcție de apel invers) - vă permite să atribuiți un handler tuturor articolelor din colecție. Metoda este identică cu bind (), dar evenimentul se declanșează o singură dată, după care handlerul va fi eliminat automat.
$ ("ibutton"). unul ("click", funcția ()
(alertă („Ați făcut clic pe butonul”);
});

După primul clic pe buton, mesajul specificat va fi afișat, iar după al doilea clic handlerul nu va mai fi apelat.

Trigger (Tip de eveniment [, Matrice de date]) - apelează handlerul pentru evenimentul specificat.
$ (document) .bind („clic”, funcția () (
// Alertă de gestionare („Eveniment Onclick”);
});
$ (document) .trigger („clic”); // Apelați responsabilul

Dacă este specificată o matrice de date, aceasta va fi transmisă funcției de apel invers din handler. Fiecare parametru va corespunde unui element al matricei.

$ ("# divl"). bind ("myEvent", funcția (e, msgl, msg2) (
$ ("# div2"). anexează („EvenimentmyEvent. „+ msgl +” 11 +
msg2) .append ("br");
});
$ ("p"). faceți clic pe (funcție () (
$ ("# divl"). declanșare ("myEvent", ["Message1", "Message2"]);
});

<р>apasa aici


Ca urmare a executării acestui cod, vom primi un mesaj.
Evenimentul meu. Mesaj1 Mesaj2

TtiggerHandleg (Tipul eveniment [, Matrice de date]) - apelează handlerul pentru evenimentul specificat. Spre deosebire de metoda trigger (), evenimentul este declanșat numai pentru primul articol din colecție. De asemenea, nu are loc nicio acțiune implicită când se utilizează metoda tiggerHandleg ().
$ ("formular"). bind ("trimite", funcția (e, msg) (
dacă (mesaj) (
alertă („Formularul nu va fi trimis.” + msg);
}
altfel (
alertă („Formularul va fi trimis”);
});
$ (": buton"). bind ("clic", funcția () (
$ ("formular"). triggerHandler ("trimite", ["Datele noastre"]);
});



În acest exemplu, făcând clic pe butonul Call Handler declanșează gestionarea evenimentelor onclick. În interiorul handlerului, apelăm evenimentul onsubmit și transmitem datele noastre. Pe baza acestor date, putem determina dacă evenimentul a fost declanșat atunci când a fost făcut clic pe butonul Trimitere sau a fost cauzat de noi în mod artificial. Dacă este definită variabila msg, atunci evenimentul a fost apelat folosind metoda triggerHandler (). În acest caz, după afișarea mesajului, datele formularului nu vor fi trimise. Dacă faceți clic pe butonul Trimite, variabila msg nu va fi definită, iar după afișarea mesajului, datele formularului vor fi trimise.

Unbind ([Tipul eveniment [, Numele funcției]]) - elimină gestionatorii de evenimente pentru toate elementele colecției.
$ ("# btnl"). bind ("clic", funcția () (
alertă („Ați făcut clic pe butonul”);
});
$ ("# btnl"). unbind ("click");
});


Dacă specificați numele funcției în al doilea parametru, atunci va fi eliminat doar handlerul cu acel nume.

funcția f__clickl () (
alertă ("Funcția f__clickl ()");
}
funcția f_click2 () (
alertă ("Funcția f__click2 ()");
}
$ ("# btnl"). bind ("click", f_clickl); $ ("#btnl")
.bind („click”, f_click2);
$ ("# btn2"). bind ("clic", funcția () (
$ ("# btnl"). unbind ("click", f_click2);
});



Funcţie
f_click1 ()
Funcţie
f_clJck2 ()

După ce faceți clic pe butonul Eliminare, handlerul de evenimente cu numele f_click2 va fi eliminat. Acum, după ce facem clic pe primul buton, vom primi un singur mesaj.
F_clJck1 () Funcția

Dacă parametrii nu sunt specificați, atunci toți gestionanții vor fi eliminați.
evenimente. $ ("# btnl"). unbind ();

Metodele JQuery live () și die ().

Atribuirea de gestionare a evenimentelor folosind metoda bind () are un dezavantaj semnificativ. Dacă am atribuit un handler și apoi am adăugat elemente noi, atunci niciun handler de evenimente nu va fi alocat acelor elemente.

$ (": buton"). bind ("clic", funcția () (
var html = ` `;
$ (acest) .după ("
„+ html);

});

În acest exemplu, am atribuit un handler de evenimente clic pentru toate butoanele. După ce faceți clic pe butonul, se adaugă un nou buton. Dacă încercați să faceți clic pe el, atunci nu vor apărea modificări.

Metoda live () este folosită pentru a atribui în mod dinamic handlere de evenimente. Să refacem exemplul nostru anterior și să folosim metoda live () în loc de bind ().

$ (": buton"). live ("click", funcția () (
var html = ` `;
$ (acest) .după ("
„+ html);

});

În acest caz, când dați clic pe butonul nou, apare un alt buton. Făcând clic pe acest buton, se va crea un alt buton etc.

Notă
Metoda live () este disponibilă începând cu jQuery 1.3. În versiunile anterioare, puteți utiliza modulul Live Query.

Metoda live () are următorul format, live (Tip de eveniment, Funcție de apel invers)
Următoarele valori pot fi specificate în parametrul Tip de eveniment:
evenimente mouse: click, dblclick, mousedown, mouse up, mousemove, mouseover, mouseout;
evenimente de la tastatură: keydown, keyprcss, keyup.

În plus, vă puteți atribui propriile evenimente folosind metoda live (). Evenimentele proprii sunt invocate folosind metodele trigger () și trigger-Handler (). Să ne creăm propriul eveniment și apoi să îl sunăm.

$ ("# divl"). live ("myEvent", funcția () (
alertă („Gestionarea propriului eveniment”);
});
$ (": buton"). faceți clic pe (funcție () (
$ ("# divl"). declanșare ("myEvent"); // Ridicați evenimentul
});

Parametrul Funcție de apel invers este o referință la o funcție în următorul format.

function Nume functie ([Eveniment obiect [, Argumente]]) (
// ...
}

Elementul care a generat evenimentul este accesibil în interiorul funcției prin intermediul acestui pointer. Rețineți că acest indicator se referă la un element din modelul obiect document, nu la un element din colecția jQuery. Dacă o variabilă este specificată în parametrul obiect eveniment, atunci prin intermediul acestuia puteți accesa proprietățile obiectului eveniment. În parametrul Argumente, puteți specifica mai multe variabile separate prin virgule. Puteți transmite valori acestor variabile folosind al doilea parametru al metodelor trigger () și triggerHandler ().

$ ("# divl"). bind ("myEvent", funcția (e, msg) (
alertă („Gestionarea propriului eveniment.” + msj);
});
$ (": buton"). faceți clic pe (funcție () (
$ ("# divl"). declanșator ("myEvent", ["Ourmesaj"]);
});

Puteți elimina un handler de evenimente folosind metoda die (). Formatul metodei: die (Tipul eveniment [, Numele funcției])
Notă
Metoda die () este disponibilă începând cu jQuery 1.3.

Să ne uităm la un exemplu.

$ ("# btnl"). live ("clic", funcția ()
(alertă („Ați făcut clic pe butonul”);
});

$ ("# btnl"). die ("click"); // Îndepărtați handlerul
});

Dacă specificați numele funcției în al doilea parametru, atunci va fi eliminat doar handlerul cu acel nume.

funcția f_clickl () (
alertă („Funcțiaf_clickl () ");
}
funcția f_click2 () (
alertă („Funcțiaf_click2 () ");
$ ("# btnl"). live ("click", f_clickl);
$ ("# btnl"). live ("click", f_click2);
$ ("# btn2"). faceți clic pe (funcție () (
$ ("# btnl"). die ("click", f_click2);
});

!}
!}

În acest exemplu, am atribuit doi handlere de evenimente de clic pentru primul buton. Dacă faceți clic pe butonul Faceți clic pe mine, vor fi afișate două mesaje.
F_clJck1 () Funcția
F_clJck2 () Funcția

Făcând clic pe butonul Eliminare, se elimină handlerul de evenimente f_click2. Acum, după ce facem clic pe primul buton, vom primi un singur mesaj.
Funcția F_click1 ().

Evenimente în barbotare în jQuery

Ce este barbotarea evenimentului? Să ne uităm la următorul exemplu (Listarea 6.6).

Lista 6.6. Evenimente zbuciumate



Pluti</i><i>evenimente</i><i>





Clicmouse Aici




În acest exemplu, am scris un handler de evenimente onclick pentru toate elementele paginii. Să încercăm să facem clic stânga pe un cuvânt aici. Ca rezultat, în loc de un singur eveniment, obținem o întreagă secvență de evenimente.
element SPAN
Elementul P
Elementul CORP
element HTML

Cu alte cuvinte, evenimentul onclick este transmis secvenţial următorului element părinte. Pentru o etichetă span, elementul părinte este un paragraf. Pentru un paragraf, elementul părinte este corpul documentului însuși, iar pentru corpul unui document, elementul părinte este eticheta html. Această trecere a evenimentelor se numește barbotarea evenimentelor.

Uneori, balonarea evenimentelor trebuie întreruptă. Pentru a face acest lucru, returnați false în cadrul funcției de apel invers. Să demonstrăm acest lucru cu un exemplu (Listarea 6.7).

Lista 6.7. Întrerupeți barbotarea evenimentelor



Întrerupeți barbotarea evenimentelor





Clicmouse Aici




Să încercăm acum să facem clic stânga pe cuvântul de aici. Drept urmare, în loc de patru evenimente, obținem doar unul.
element SPAN

În plus față de returnarea false, puteți utiliza metoda stopPropagation () a obiectului eveniment pentru a opri evenimentele cu barbotare (Listing 6.8).

Lista 6.8. Întreruperea barbotației cu metoda stopPropagation ().

stopPropagation ()


Întreruperea barbotației cu metoda</i><br><i>stopPropagation ()





Clicmouse Aici




Acțiuni implicite JQuery și anulați

Pentru multe evenimente, sunt atribuite acțiuni implicite, de ex. acțiunile pe care browserul web le întreprinde ca răspuns la evenimentele din document. De exemplu, când faceți clic pe un hyperlink, acțiunea implicită este să mergeți la adresa URL specificată, făcând clic pe butonul Trimitere, datele formularului sunt trimise și așa mai departe.

Uneori, acțiunile implicite trebuie să fie anulate. De exemplu, atunci când trimiteți datele din formular, le puteți valida așa cum vă așteptați și, dacă nu îndeplinește cerințele specificate, puteți anula trimiterea. Pentru a face acest lucru, returnați false în cadrul funcției de gestionare.

Listarea 6.9 prezintă un exemplu de validare a faptului că adresa de e-mail este introdusă corect în câmpul E-mail și de întrerupere a hyperlinkului dacă se întâlnește o eroare.

Lista 6.9. Întrerupeți acțiunile implicite



Întrerupeți acțiunile implicite






E-mail:





Click pepentrutranzițiepelegătură



În plus față de returnarea false, puteți utiliza metoda preventDefault () a obiectului eveniment pentru a anula acțiunile implicite (Listarea 6.10).

Lista 6.10. Întreruperea evenimentelor cu metoda preventDefault ().

preventDefault ()


Întreruperea evenimentelor cu o metodă</i><br><i>preventDefault ()






E-mail:





Click pepentrutranzițiepelegătură



SSH(English Secure SHell - „secure shell”) este un protocol de rețea la nivel de sesiune care permite controlul de la distanță al sistemului de operare și tunelarea conexiunilor TCP (de exemplu, pentru transferul de fișiere). Funcționalitatea este similară cu protocoalele Telnet și rlogin, dar, spre deosebire de acestea, criptează tot traficul, inclusiv parolele transmise. SSH permite alegerea diferiților algoritmi de criptare. Clienții SSH și serverele SSH sunt disponibile pentru majoritatea sistemelor de operare în rețea.

SSH permite practic orice alt protocol de rețea să fie transmis în siguranță într-un mediu nesigur. Astfel, puteți nu numai să lucrați de la distanță pe un computer prin intermediul shell-ului de comandă, ci și să transmiteți un flux audio sau video pe un canal criptat (de exemplu, de la o cameră web). SSH poate utiliza, de asemenea, compresia datelor transmise pentru criptarea ulterioară, ceea ce este convenabil, de exemplu, pentru lansarea de la distanță a clienților X Window System.

Majoritatea furnizorilor de găzduire oferă clienților acces SSH la directorul lor principal contra cost. Acest lucru poate fi convenabil atât pentru lucrul în linia de comandă, cât și pentru lansarea de la distanță a programelor (inclusiv aplicații grafice).

Prima versiune a protocolului, SSH-1, a fost dezvoltată în 1995 de cercetătorul Tatu Ulönen de la Universitatea de Tehnologie din Helsinki, Finlanda. SSH-1 a fost scris pentru a oferi mai multă confidențialitate decât protocoalele rlogin, telnet și rsh. În 1996, a fost dezvoltată o versiune mai sigură a protocolului, SSH-2, care era incompatibilă cu SSH-1. Protocolul a câștigat și mai multă popularitate, iar până în 2000 avea aproximativ două milioane de utilizatori. În prezent, termenul „SSH” înseamnă de obicei exact SSH-2, deoarece prima versiune a protocolului nu este acum practic utilizată din cauza unor deficiențe semnificative.

O zi bună, abonați curioși și invitați de blog. Astăzi vă vom prezenta o secțiune utilă într-un limbaj de scripting bazat pe prototip, și anume evenimentul JavaScript mouseover.

Vreau să înțelegeți bine evenimentele, cum ar fi clic, mouse-up, mousedown, mouseover și altele, să înțelegeți diferența dintre ele și să învățați cum să le folosiți pentru a rezolva sarcinile la îndemână. Desigur, după fiecare material teoretic cheie, puteți găsi implementarea software a exemplelor. Ei bine, să începem!

Toate informațiile despre evenimentele mouse-ului

Există mai multe evenimente pentru mouse care acoperă în totalitate toate acțiunile posibile ale cursorului de pe pagină. Printre acestea se numără cele care sunt declanșate atunci când dați clic pe un obiect, treceți cu mouse-ul peste el sau mutați indicatorul peste o fereastră deschisă. Toate pot fi împărțite în două grupuri: evenimente simple și complexe (compozite).

Să începem simplu

În primul rând, să ne familiarizăm cu evenimente simple. Sunt doar cinci. Pentru comoditate, am inclus o descriere a fiecărui instrument în tabelul atașat mai jos.

Nume Descriere
jos mouse-ul Evenimentul numit este apelat atunci când unul dintre butoanele mouse-ului este apăsat, dar nu este încă eliberat.
mouse-ul Și acesta este declanșat deja când eliberați butonul prins anterior.
mouse-ul peste Apelat când cursorul trece peste obiectul în curs de procesare.
mouseout Gestionează acțiunea cursorului care părăsește zona elementului.
mousemove Orice mișcare a indicatorului peste o anumită zonă declanșează evenimentul curent.

Ei bine, acum, pentru a consolida materialul, să ne uităm la un exemplu. Am creat un mic program în care emoțiile emoji-ului se schimbă atunci când trec cu mouse-ul și mișc cursorul.

Mutați cursorul mouse-ului peste imagine și aceasta se va schimba.

Acum ia-l deoparte și urmărește schimbările

E timpul să ne grupăm

Acum să trecem la vederi complexe. Fiecare dintre aceste evenimente include mai multe evenimente simple. În acest caz, toate componentele unui eveniment complex nu se declanșează simultan, ci se aliniază. Prin urmare, este posibil să observați uneori o astfel de situație în care, atunci când faceți clic rapid pe, de exemplu, elemente de meniu de pe un site web, să nu funcționeze uneori.

De ce este așa? Răspunsul este destul de simplu.

Procesarea evenimentelor are loc la o anumită viteză maximă. Și, în același timp, nu uitați că evenimentele sunt procesate pe rând. Aceasta înseamnă că, dacă faceți clic pe diferite elemente prea repede, lanțul de procesare poate să nu fie executat complet.

Deci, evenimentele compuse sunt enumerate mai jos.

După cum ați înțeles deja, evenimentele complexe simplifică oarecum viața dezvoltatorilor, inclusiv un set de evenimente simple necesare simultan. Drept urmare, astăzi nimeni nu își poate imagina manipularea obișnuită a butoanelor sau a altor elemente fără același lucru clic.

Pentru familiarizarea practică cu funcționarea evenimentelor enumerate mai sus, am modificat aplicația anterioară. Analizați rezultatul muncii mele.

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 Exemplu de trecere cu mouse-ul peste un element de pagină

Exemplu de trecere cu mouse-ul peste un element de pagină

După cum puteți vedea, totul este foarte simplu. Aceste elemente sunt ușor de apelat în cod și le leagă de acțiuni specifice.

Top articole similare