Come configurare smartphone e PC. Portale informativo
  • casa
  • Recensioni
  • evento di passaggio del mouse jquery. eventi mousedown, mouseup e click

evento di passaggio del mouse jquery. eventi mousedown, mouseup e click

In questo articolo parleremo sugli eventi del mouse Javascript. Questi eventi sono molto importanti in Javascript e vengono utilizzati in ogni fase. Innanzitutto, ti parlerò di tutti gli eventi standard del mouse: mousedown , mouseup , click , dblclick , mousemove e infine mouseover e mouseout .

eventi mousedown, mouseup e click

Quando l'utente fa clic su un elemento, vengono attivati ​​almeno 3 eventi del mouse, in questo ordine:

  1. mousedown , l'utente ha premuto il pulsante del mouse sull'elemento
  2. mouseup , l'utente ha rilasciato il pulsante del mouse sull'elemento
  3. eventi click , mousedown e mouseup rilevati sull'elemento

In generale, gli eventi mousedown e mouseup sono più utili degli eventi click. A volte l'utente fa clic con il mouse, ma l'evento click non si attiva.

Supponiamo che l'utente abbia fatto clic sul pulsante sul collegamento, quindi abbia spostato il cursore da qualche parte di lato e rilasciato il pulsante. Il collegamento ha gestito solo l'evento mousedown. Puoi anche riprodurre la situazione opposta quando l'utente preme il pulsante del mouse, quindi sposta il cursore sul collegamento e rilascia il pulsante. Viene attivato solo l'evento mouseup. In altri casi il clic viene attivato.

Ad ogni modo, questo problema si verifica solo se lo desideri: devi registrare i gestori di eventi onmousedown/up, ma nella maggior parte dei casi l'evento click è sufficiente.

Tieni presente che se utilizzi gli avvisi, il browser può confondersi e perdere l'ordine degli eventi che vengono eseguiti e il numero di volte in cui sono stati chiamati.

evento dblclick (doppio clic)

L'evento dblclick viene utilizzato molto meno spesso di tutti gli altri eventi del mouse. Se lo usi, assicurati di non utilizzare i gestori di eventi onclick e ondblclick per lo stesso Elemento HTML. È quasi impossibile determinare cosa ha fatto l'utente in questo caso.

Quando l'utente fa doppio clic su un elemento, l'evento click viene attivato prima e solo dopo dblclick . Anche l'utilizzo di messaggi di avviso qui è estremamente pericoloso.

evento mousemove

L'evento mousemove funziona bene, ma dovresti essere consapevole del fatto che la gestione di questo tipo di eventi può richiedere del tempo. L'evento mousemove si attiva quando l'utente sposta il cursore del mouse di un pixel. Sembrerebbe che non stia succedendo nulla di speciale, ma all'interno ci sono funzioni complesse, la cui esecuzione richiede molto tempo. Questo può portare a lavoro precario luogo. Quindi è meglio usare il gestore di eventi onmousemove solo dove ne hai veramente bisogno e assicurati di rimuoverlo in futuro.

Element.onmousemove = faiQualcosa;
// dopo
elemento.onmousemove = nullo;

Eventi al passaggio del mouse e al passaggio del mouse

Diamo un'occhiata a un piccolo esempio. Prova a passare il mouse sopra gli elementi con sfondo diverso. L'elemento 1 dovrebbe lampeggiare leggermente quando si passa sopra - questo attiva l'evento mouseover.

Elemento n. 1

Intervallo dell'elemento n. 2

Tuttavia, come puoi vedere, questo evento si attiva anche quando passi il mouse sopra l'elemento n. 2 e persino span.

Il motivo di questo comportamento è che l'evento impostato sul primo elemento viene applicato anche ai suoi nodi figlio. Tutto è molto chiaro, ma il problema sorge quando dobbiamo eseguire qualche azione quando il cursore del mouse si sposta, ad esempio, da elemento span all'elemento #2.

"Da dove viene il topo?" o relatedTarget, fromElement e toElement proprietà

Microsoft ha creato due proprietà per memorizzare queste informazioni:

  • fromElement - si riferisce all'elemento da cui proviene il mouse.
  • toElement - all'elemento a cui è arrivato il mouse.

Codice incrociato del browser

Quindi, se vuoi sapere da dove proviene il mouse usando l'evento mouseover, usa il seguente script:

Funzione fare qualcosa(e) (
var relTarg = e.relatedTarget || e.daElemento;
}

Nel caso di utilizzo dell'evento mouseout (l'elemento su cui si sta spostando il cursore):

Funzione fare qualcosa(e) (
if (!e) var e = window.event;
var relTarg = e.relatedTarget || e.toElemento;
}

mouseenter e mouseleave

Microsoft offre un altro modo per risolvere il problema. Hanno creato 2 nuovi eventi mouseenter e mouseleave. Questi eventi hanno lo stesso comportamento di mouseover e mouseout. L'unica differenza è che gli eventi non "saltano". elementi figlio. Questo risolve molto bene il nostro problema presentato nell'esempio.

Bene, questo è tutto ciò di cui volevo parlare Eventi Javascript i topi. Risponderò volentieri ai tuoi commenti.

Continuiamo a imparare jQuery e ora iniziamo a studiare una sezione come la gestione degli eventi in jQuery.

Eventi del documento
Quando un utente interagisce con una pagina web, si verificano degli eventi. Gli eventi sono una sorta di notifica al sistema che l'utente ha eseguito un'azione o si è verificata una condizione all'interno del sistema stesso. Gli eventi vengono attivati ​​in seguito al clic su un elemento, allo spostamento del mouse, alla pressione di un tasto sulla tastiera, al ridimensionamento di una finestra, al completamento del caricamento di una pagina Web e così via. Sapendo quali eventi può generare un particolare elemento di una pagina web, puoi scrivere una funzione per gestire questo evento. Ad esempio, quando si inviano i dati del modulo, viene attivato l'evento onsubmit. Quando si verifica questo evento, è possibile convalidare i dati inseriti dall'utente e, se non corrispondono a quanto previsto, interrompere l'invio dei dati.

All'inizio del libro, abbiamo già considerato la possibilità di eseguire script subito dopo la formazione della struttura del documento, senza attendere il caricamento di altri elementi. Come già sai, puoi gestire questo evento usando il metodo ready().


alert("Il documento è disponibile per l'esecuzione dello script");
});

Se è necessario intraprendere qualsiasi azione solo dopo Pieno carico lo stesso documento HTML, così come tutti gli altri elementi (come le immagini), puoi usare il metodo load(). La sintassi del metodo è la seguente.

carico(Funzione richiama)

funzione<Название функции>([oggetto evento]) (
// ...
}

Visualizzeremo un messaggio di conferma e il tipo di evento dopo che la pagina web sarà stata completamente caricata.

$(finestra).load(funzione(i) (
alert("Il documento è completamente caricato");
alert("Tipo di evento " + e.type);
});

Come risultato dell'esecuzione, riceveremo due messaggi.

Il documento è completamente caricato
tipo di evento di caricamento

Il metodo unload() ha lo scopo di eseguire qualsiasi azione immediatamente prima di scaricare il documento. Il metodo ha la seguente sintassi.
scarica (funzione di richiamata)

Il parametro della funzione Callback specifica un riferimento a una funzione del formato seguente.

funzione<Название функции>([<Объект event>]) {
// ...
}
Visualizza un messaggio prima di scaricare il documento.
$(finestra).unload(funzione()
( avviso("Entradi più!");
});

In questa sezione, esamineremo altri due metodi utili.

resize (funzione Callback) - Eseguita quando la finestra viene ridimensionata.

scroll (funzione di richiamata) - Eseguita quando si scorre il contenuto di una pagina, un documento, una finestra o un elemento della cornice.

Il parametro della funzione Callback specifica un riferimento a una funzione del formato seguente.
funzione Nome funzione([Oggetto evento]) (
// ...
}

È possibile elaborare lo scorrimento del contenuto della finestra e visualizzare un messaggio come questo.
$(finestra).scroll(funzione() (
alert("Scorri il contenuto della finestra");
});

Come esempio dell'uso del metodo resize(), otteniamo la larghezza e l'altezza della finestra dopo che è stata ridimensionata (Listato 6.1).

Listato 6.1. Mostra la larghezza e l'altezza della finestra durante il ridimensionamento



Visualizza larghezza e altezza della finestra in caso di modifica</i><br><i>dimensione</i><i>





Quando la finestra viene ridimensionata, l'elemento divl visualizzerà la larghezza e l'altezza della finestra.

Il metodo di errore (funzione Callback) viene chiamato quando si verifica un errore nella pagina o in codice JavaScript. Il parametro della funzione Callback specifica un riferimento a una funzione del formato seguente.

function Nome funzione([Messaggio[, URL[, Numero riga]]])(
// ...
}

Se l'errore si è verificato nell'oggetto finestra, nella funzione di callback saranno disponibili tre parametri:

Messaggio - testo che descrive l'errore;
URL - URL completo del documento con l'errore;
Numero di riga - numero di riga con un errore.

Nascondere Errori JavaScript dagli utenti, è necessario restituire true all'interno della funzione di callback.

$(finestra).error(funzione()(
restituisce vero;
});

Usando il metodo error(), puoi gestire un errore di caricamento dell'immagine.

$("img").error(funzione() (
$(questo).attr("src", "noimage.gif");
});

Nota
Per corretto funzionamento Per questo esempio, è necessario ospitare lo script sul server. In caso contrario, l'evento non verrà elaborato.

Eventi del mouse in jQuery

I seguenti metodi sono forniti per gestire gli eventi del mouse in jQuery.

Click([Funzione di richiamata]) - Eseguito quando si fa clic su un elemento o una pagina web. Se il parametro non è specificato, simulerà un clic sull'elemento. L'evento onclick è preceduto da due eventi: onmousedown e onmouseup. Visualizza un messaggio dopo aver fatto clic su qualsiasi pulsante.
$("ibutton").click(funzione() (
});

Toggle(): consente di alternare tra più funzioni quando si fa clic su un elemento o una pagina Web. Le funzioni vengono richiamate a turno. Il primo clic richiama la prima funzione, il secondo clic richiama la seconda e il terzo clic richiama la terza. Se la terza funzione non è definita, viene richiamata di nuovo la prima funzione e così via. il metodo toggle() ha formato successivo.
attiva/disattiva(<Функция обратного вызова 1>,
<Функция обратного вызова 2>[,
<Функция обратного вызова N>])

Facciamo cambiare il colore del testo del paragrafo dopo ogni clic del mouse.
$("p").commuta
(funzione() (
$(questo).css("colore", "rosso");
funzione() (
$(questo).css("colore", "blu");
funzione() (
$(questo).css("colore", "verde");
}
).click();

Prova a fare clic più volte sul paragrafo. Il colore del testo cambierà in sequenza da rosso a blu, da blu a verde, da verde a rosso di nuovo. Prestare attenzione all'ultima riga dell'esempio. Dopo che il gestore dell'evento è stato assegnato, l'evento onclick viene attivato con il metodo click() senza parametri. Per questo motivo, il colore del paragrafo sarà rosso fin dall'inizio.

Dblclick([Funzione di richiamata]) - eseguito quando doppio click su un elemento o una pagina web. Se il parametro non è specificato, simulerà un doppio clic sull'elemento. L'evento ondblclick è preceduto da tre eventi: onmousedown, onmouseup e onclick. Visualizza un messaggio quando fai doppio clic su qualsiasi paragrafo.
$("p").dblclick(funzione() (
alert("Hai fatto doppio clic");
});

mousedown (funzione Callback) - eseguita quando si preme il pulsante del mouse su un elemento o una pagina. L'evento onmousedown si verifica prima degli eventi onmouseup e onclick.

mouseup (funzione Callback) - eseguita quando viene rilasciato il pulsante del mouse precedentemente premuto. L'evento onmouseup si verifica tra gli eventi onmousedown e onclick. Visualizza i messaggi quando fai clic e rilasci il pulsante del mouse su un paragrafo.

$("p").mousedown(function() (
$("#divl").append("Evento Onmousedown" + "
");
))mouseup(funzione() (
$("#divl").append("Evento Onmouseup" + "
");
});
<р>cliccami

Mousemove (Funzione Callback) - Viene eseguito ogni volta che si sposta il mouse. Visualizza un messaggio quando sposti il ​​cursore su un paragrafo.

$("p") .mousemove(function() (
$("#divl").append("Evento Onmousemove" + "
");
});

mouseover (funzione Callback) - eseguita quando il cursore del mouse si trova sull'elemento.

mouseout (funzione Callback) - eseguita quando il cursore del mouse lascia l'elemento. Quando si passa il mouse sopra il collegamento, rendere il collegamento di colore rosso e visualizzare un messaggio, e quando il cursore lascia il collegamento, cambiarne il colore in nero e visualizzare un messaggio.

$("a").mouseover(funzione() (
$(questo).css("colore", "rosso");
$("#divl").append("Eventoal passaggio del mouse" + "
");

))mouseout(funzione() (
$(questo).css("colore", "nero");
$("#divl").append("Eventosenza controllo" + "
");

}>;

hover(): consente di gestire il passaggio del mouse e il passaggio del mouse su un elemento con un unico metodo. Ha il seguente formato.
hover(Richiamata evento onmouseover, richiamata evento onmouseout)

Riscriviamo il nostro esempio precedente e utilizziamo il metodo hover().

$("a").hover(funzione() (
$(questo).css("colore", "rosso");
$("#divl").append("Evento sopra il mouse" + "
"); },
funzione() (
$(questo).css("colore", "nero");
$("#divl").append("Evento Onmouseout" + "
");
});

L'uso del metodo hover() ha un altro vantaggio. Se è presente un altro blocco all'interno del blocco, le singole funzioni verranno richiamate all'ingresso del blocco. unità interna, così come quando si esce da esso. Quando si utilizza il metodo hover(), questi movimenti verranno ignorati (Listato 6.2).

Listato 6.2. Caratteristiche dell'utilizzo del metodo al passaggio del mouse()



Caratteristiche dell'utilizzo del metodo hover()






Separatogestori:



Linea 1

Linea 2



Funzionepassa il mouse():



Linea 1

Linea 2




Per il primo blocco nidificato, abbiamo definito gestori di eventi separati. Se spostiamo il cursore del mouse sull'intero blocco al centro, otteniamo la seguente sequenza di eventi.
evento sul passaggio del mouse
evento senza fine
evento sul passaggio del mouse
evento senza fine
evento sul passaggio del mouse
evento senza fine

Per il secondo blocco nidificato, i gestori di eventi vengono assegnati utilizzando il metodo hover(). Con la stessa azione, riceveremo solo due eventi.
evento sul passaggio del mouse
evento senza fine

In tutti i metodi in questa sezione, non abbiamo ancora capito il parametro che può essere passato a loro.


// ...
}

L'elemento che ha generato l'evento è accessibile all'interno della funzione tramite il puntatore this. Si noti che il puntatore this si riferisce all'elemento. modello a oggetti documento, non su un elemento di raccolta jQuery. Se nel parametro dell'oggetto evento è specificata una variabile, tramite essa è possibile accedere alle proprietà dell'oggetto evento. Scriviamo un gestore di clic del mouse per due elementi contemporaneamente. Quando si fa clic, visualizzare il nome del tag nell'elemento con l'id divl.

$("p, div").click(function(es) {
$("#divl")
.append("Elemento" + e.srcElement.tagName + "
");

});

Eventi della tastiera in jQuery

I seguenti metodi sono forniti per gestire gli eventi della tastiera in jQuery.

keydown (funzione di richiamata) - eseguita quando viene premuto un tasto della tastiera.

keyprcss (Funzione Callback) - Eseguita quando viene premuto un tasto della tastiera. Simile al metodo keydown(), ma restituisce il valore del codice del carattere in Codifica Unicode. L'evento si attiva continuamente finché l'utente non rilascia la chiave.

keyup (funzione Callback) - eseguita quando viene rilasciato il tasto della tastiera precedentemente premuto.

Il parametro della funzione di callback è un riferimento a una funzione del formato seguente.

funzione Nome funzione([Oggetto evento]) (
// ...
}

Se nel parametro dell'oggetto evento è specificata una variabile, tramite essa è possibile accedere alle proprietà dell'oggetto evento. Ad esempio, per ottenere il codice del tasto premuto, è possibile utilizzare la proprietà Codice del tasto. Ad esempio, otterremo il codice del tasto premuto e dimostreremo la sequenza degli eventi (Listato 6.3).

Listato 6.3. Eventi da tastiera



Eventi</i><i>tastiere</i><i>








Evidenzia il campo di testo e premi un tasto qualsiasi sulla tastiera. Ad esempio, premiamo il tasto A con il layout della tastiera russa. Di conseguenza, otteniamo il seguente messaggio.
keydown 70
keyprcss 1072
tasto 7 0

Crea eventi in jQuery

I metodi seguenti sono progettati per gestire gli eventi del modulo.

focus([Callback]) - Eseguito quando l'elemento del modulo riceve lo stato attivo. Se il parametro non è specificato, l'elemento riceverà lo stato attivo per l'input.

blur([Callback]) - attivato quando l'elemento del modulo perde lo stato attivo. Se il parametro non è specificato, l'elemento perderà lo stato attivo per l'input.

modifica (funzione Callback) - eseguita quando i dati nel campo di testo cambiano e lo stato attivo si sposta su un altro elemento del modulo o quando i dati del modulo vengono inviati.

submit([Funzione di richiamata]) - Eseguito quando vengono inviati i dati del modulo. Se il parametro non è specificato, il modulo verrà inviato.

select([ funzione di callback ]) - eseguito quando viene selezionato il contenuto di un elemento. Se il parametro non è specificato, il contenuto dell'elemento sarà completamente selezionato.

Il parametro della funzione di callback è un riferimento a una funzione del formato seguente.

funzione Nome funzione([Oggetto evento]) (
// ...
}

L'elemento che ha generato l'evento è accessibile all'interno della funzione tramite il puntatore this. Si noti che il puntatore this fa riferimento a un elemento nel Document Object Model, non a un elemento nella raccolta jQuery. Se nel parametro dell'oggetto evento è specificata una variabile, tramite essa è possibile accedere alle proprietà dell'oggetto evento.

Dimostriamo la gestione di vari eventi di form (Listato 6.4).



Eventi</i><i>le forme</i><i>










!}

id="btn2">

!}

Quindi, abbiamo creato un modulo con tre elementi. Quando si seleziona un elemento dall'elenco, verrà visualizzato un messaggio con il valore dell'elemento selezionato. Se selezioni un campo di testo, il colore di sfondo cambierà e se rimuovi lo stato attivo dal campo, il colore di sfondo tornerà bianco. Facendo clic sul pulsante Invia viene visualizzata una finestra di dialogo che consente di interrompere l'invio dei dati del modulo. Sotto il modulo ci sono quattro pulsanti. Il primo pulsante consente di selezionare il contenuto campo di testo. Dopo la selezione, verrà visualizzato un messaggio sulla selezione del frammento, poiché abbiamo definito il gestore appropriato. Lo stesso messaggio può essere ottenuto selezionando un frammento nel campo con il mouse. Il secondo pulsante consente di impostare lo stato attivo dell'input sul campo di testo e il terzo di rimuoverlo. E infine, il quarto pulsante serve per inviare i dati del modulo. Facendo clic su questo pulsante verrà visualizzata una finestra di dialogo per confermare l'invio dei dati.

Gestori di eventi generici in jQuery

Nelle sezioni precedenti, abbiamo esaminato specifici gestori di eventi. La libreria jQuery ti consente anche di assegnare gestori a diversi eventi (inclusi i tuoi eventi) con un unico metodo. Vengono forniti i metodi seguenti per l'assegnazione, la chiamata e la rimozione di gestori.

Bind(Event type[, Data] , Callback function) - consente di assegnare un gestore a tutti gli elementi della raccolta. I seguenti valori possono essere specificati nel parametro Tipo di evento:
eventi del documento: caricamento, scaricamento, ridimensionamento, scorrimento, errore;
eventi del mouse: click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave;
eventi della tastiera: keydown, keyprcss, keyup;
eventi del modulo: messa a fuoco, sfocatura, modifica, selezione, invio.

Abbiamo già considerato quasi tutti questi eventi nelle sezioni precedenti. Ad esempio, puoi assegnare un gestore di eventi clic per tutti i pulsanti come questo.

$(":button") .bind("click", function()
( avviso ("Tupremutosulpulsante");
});

Ci sono due eventi del mouse non presi in considerazione. L'evento mouseenter viene attivato quando il cursore del mouse si trova sull'elemento e l'evento mouse leave viene attivato quando il cursore del mouse lascia l'elemento. L'uso di questi eventi è diverso dalla gestione degli eventi mouseover e mouseout. Se è presente un altro blocco all'interno del blocco, l'evento mouseover verrà attivato quando viene inserito il blocco interno e l'evento mouseout verrà attivato quando esce. Quando si utilizzano gli eventi mouseenter e mouseleave, questi movimenti verranno ignorati (Listato 6.5).

Listato 6.5. eventi mouseenter e mouseleave



Eventi</i><i>mouseenter e</i><i>lascia il topo

content="testo/html; charset=utf-8">





Eventipassa il mouse euscita del mouse:



Linea 1

Linea 2



Eventimouseenter emouseleave:



Linea 1

Linea 2




Per il primo blocco nidificato, abbiamo definito gestori di eventi mouseover e mouseout. Se spostiamo il cursore del mouse sull'intero blocco al centro, otteniamo la seguente sequenza di eventi.
evento al passaggio del mouse
evento di uscita del mouse
evento al passaggio del mouse
evento di uscita del mouse
evento al passaggio del mouse
evento di uscita del mouse

Il secondo blocco nidificato ha i gestori di eventi mouseenter e mouseleave assegnati. Con la stessa azione, otteniamo solo due eventi.
evento mouseenter
evento di uscita del mouse

Nel parametro Tipo di evento è possibile specificare una combinazione di eventi separati da uno spazio. Cambiamo la classe del collegamento quando il cursore del mouse è posizionato e quando il cursore si allontana, cancelleremo la classe.

$("a").bind("mouseenter mouseleave", function() (
$(questo).toggleClass("clsl");
});

Puoi anche associare i tuoi eventi usando il metodo bind(). La chiamata ai propri eventi viene eseguita utilizzando i metodi trigger() e triggerHandler(). Creiamo il nostro evento e poi lo chiamiamo.

$("#divl").bind("myEvent", function() (
alert("Gestione evento personalizzato");
});
$("#divl"). trigger("myEvent11) ; // Attiva l'evento

Il parametro della funzione di callback è un riferimento a una funzione del formato seguente.

funzione Nome funzione([Evento[, Argomenti] ]) (
// ...
}

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

});
$("#divl").trigger("myEvent", ["Il nostro messaggio"]);

attraverso parametro opzionale I dati possono essere passati valori alla funzione del gestore. Per fare ciò, i parametri e i valori passati devono essere specificati come segue.
{
Parametro1: "Valore1",
Parametro2: "Valore2",
Parametri: "Valore"
}

Puoi ottenere il valore del parametro passato all'interno della funzione in questo modo.
3value = Oggetto event.data.Parameter

Considera un esempio.

funzione f_clic(e) (
var str = "msgl = 11 + e.data.msgl + "\n";
str += "msg2 = 11 + e.data.msg2; alert(str);
restituire falso;
}
$("a").bind(
"clic", // Evento
(msgl: "Messaggio 1", msg2: "Messaggio 2"), // I nostri dati
f_click // Collegamento alla funzione
) ;

msgl = messaggio 1
msg2 = messaggio 2

Puoi assegnare più gestori a un singolo evento. In questo caso, verranno chiamati nell'ordine in cui sono stati definiti.


avviso("Primogestore");
});
$("#btnl").bind("clic", function() (
avviso("Secondogestore");
});

Cliccando su un elemento con ID btnl verranno visualizzati due messaggi in sequenza.
Primo gestore
Secondo gestore

Uno (Tipo di evento[, Dati], Funzione di richiamata) - consente di assegnare un gestore a tutti gli elementi della raccolta. Il metodo è identico a bind(), ma l'evento si attiva solo una volta, dopodiché il gestore verrà automaticamente rimosso.
$("ibutton").one("click", function()
( avviso("Hai cliccato il pulsante");
});

Dopo il primo clic sul pulsante verrà visualizzato il messaggio specificato e dopo il secondo clic il gestore non verrà più chiamato.

Trigger (Tipo di evento[, Matrice di dati]): chiama il gestore dell'evento specificato.
$(documento).bind("clic", function() (
// Avviso gestore ("Event onclick");
});
$(documento).trigger("clic"); // Chiama il gestore

Se viene specificata una matrice di dati, verrà passata alla funzione di callback nel gestore. Ogni parametro corrisponderà a un elemento dell'array.

$("#divl").bind("myEvent", function(e, msgl, msg2) (
$("#div2") . append("Eventoil mio evento. " + msgl + " 11 +
msg2).append("br");
});
$("p").click(funzione() (
$("#divl").trigger("myEvent", [“Message1”, “Message2” ]);
});

<р>premere qui


Come risultato dell'esecuzione di questo codice, riceviamo un messaggio.
evento mioEvento. Messaggio1 Messaggio2

TgiggerHandleg (Event type[, Data array]): chiama il gestore dell'evento specificato. A differenza del metodo trigger(), l'evento viene generato solo sul primo elemento della raccolta. Inoltre, quando si utilizza il metodo triggerHandleg(), non è presente alcuna azione predefinita.
$("form").bind("submit", function(e, msg) (
se (msg) (
alert("Il modulo non verrà inviato. " + msg);
}
altro(
alert("Il modulo verrà inviato");
});
$(":button").bind("click", function() (
$("modulo") . triggerHandler("submit", ["I nostri dati"]) ;
});



In questo esempio, facendo clic sul pulsante Richiama gestore viene attivato il gestore eventi onclick. All'interno del gestore, attiviamo l'evento onsubmit e inviamo i nostri dati. Sulla base di questi dati, possiamo determinare se l'evento è stato attivato quando è stato fatto clic sul pulsante Invia o se è stato attivato artificialmente da noi. Se la variabile msg è definita, l'evento è stato generato utilizzando il metodo triggerHandler(). In questo caso, i dati del modulo non verranno inviati dopo la visualizzazione del messaggio. Se si fa clic sul pulsante Invia, la variabile msg non sarà definita ei dati del modulo verranno inviati dopo la visualizzazione del messaggio.

Unbind([Tipo evento[, Nome funzione]]) - rimuove i gestori di eventi per tutti gli elementi della raccolta.
$("#btnl").bind("clic", function() (
alert("Hai cliccato il pulsante");
});
$("#btnl").unbind("click");
});


Se si specifica il nome della funzione nel secondo parametro, verrà eliminato solo il gestore con quel nome.

funzione f__clickl() (
avviso ("Funzione f__clickl () ");
}
funzione f_click2() (
avviso ("Funzione f__click2 () ");
}
$("#btnl").bind("click", f_clickl); $("#btnl")
.bind("clic", f_clic2);
$("#btn2").bind("clic", function() (
$("#btnl").unbind("click", f_click2);
});



Funzione
f_click1()
Funzione
f_clJck2()

Quando si fa clic sul pulsante Elimina gestore, il gestore eventi denominato f_click2 verrà rimosso. Ora dopo aver cliccato sul primo pulsante, riceveremo un solo messaggio.
f_clJck1() funzione

Se i parametri non sono specificati, tutti i gestori verranno eliminati.
eventi. $("#btnl").unbind();

metodi live() e die() in jQuery

L'assegnazione di gestori di eventi con il metodo bind() presenta uno svantaggio significativo. Se abbiamo assegnato un gestore e quindi abbiamo aggiunto nuovi elementi, a quegli elementi non verrà assegnato alcun gestore di eventi.

$(":button").bind("click", function() (
varhtml=` `;
$(questo).dopo("
"+html);

});

In questo esempio, abbiamo assegnato un gestore di eventi click a tutti i pulsanti. Quando si fa clic su un pulsante, viene aggiunto un nuovo pulsante. Se provi a fare clic su di esso, non verranno apportate modifiche.

Il metodo live() serve per assegnare dinamicamente gestori di eventi. Riscriviamo il nostro esempio precedente e usiamo il metodo live() invece di bind().

$(":button").live("click", function() (
varhtml=` `;
$(questo).dopo("
"+html);

});

In questo caso, se fai clic sul nuovo pulsante, apparirà un altro pulsante. Facendo clic su questo pulsante verrà creato un altro pulsante e così via.

Nota
Il metodo live() è disponibile da jQuery 1.3. Nelle versioni precedenti è possibile utilizzare il modulo Live Query.

Il metodo live() ha il seguente formato, live(Tipo di evento, Funzione di callback)
I seguenti valori possono essere specificati nel parametro Tipo di evento:
eventi del mouse: click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout;
eventi della tastiera: keydown, keyprcss, keyup.

Puoi anche assegnare i tuoi eventi usando il metodo live(). La chiamata ai propri eventi viene eseguita utilizzando i metodi trigger() e trigger-Handler(). Creiamo il nostro evento e poi lo chiamiamo.

$("#divl").live("myEvent", function() (
alert("Gestione evento personalizzato");
});
$(":pulsante").click(funzione() (
$("#divl").trigger("myEvent"); // Chiama l'evento
});

Il parametro Callback> è un riferimento a una funzione del formato seguente.

funzione Nome funzione ([Evento[, Argomenti] ]) (
// ...
}

L'elemento che ha generato l'evento è accessibile all'interno della funzione tramite il puntatore this. Si noti che il puntatore this fa riferimento a un elemento nel Document Object Model, non a un elemento nella raccolta jQuery. Se nel parametro dell'oggetto evento è specificata una variabile, tramite essa è possibile accedere alle proprietà dell'oggetto evento. È possibile specificare più variabili separate da virgole nel parametro Argomenti. I valori possono essere passati a queste variabili utilizzando il secondo parametro dei metodi trigger() e triggerHandler().

$("#divl").bind("myEvent", function(e, msg) (
alert("Gestione eventi personalizzati. " + msg);
});
$(":pulsante").click(funzione() (
$("#divl").trigger("myEvent", ["OurMessaggio"]);
});

Puoi rimuovere un gestore di eventi usando il metodo die(). Formato metodo: die(Tipo evento[, Nome funzione])
Nota
Il metodo die() è disponibile da jQuery 1.3.

Consideriamo un esempio.

$("#btnl").live("clic", funzione()
( avviso("Hai cliccato il pulsante");
});

$("#btnl").die("clic") ; // Rimuovi il gestore
});

Se si specifica il nome della funzione nel secondo parametro, verrà eliminato solo il gestore con quel nome.

funzione f_clickl() (
avviso("Funzionef_clickl()");
}
funzione f_click2() (
avviso("Funzionef_click2()");
$("#btnl").live("click", f_clickl);
$("#btnl").live("click", f_click2);
$("#btn2").click(funzione() (
$("#btnl").die("click", f_click2);
});

!}
!}

In questo esempio, abbiamo assegnato due gestori di eventi clic al primo pulsante. Se si fa clic sul pulsante Cliccami, verranno visualizzati due messaggi.
f_clJck1() funzione
f_clJck2() funzione

Facendo clic sul pulsante Elimina gestore verrà rimosso il gestore eventi denominato f_click2. Ora dopo aver cliccato sul primo pulsante otteniamo solo un messaggio.
funzione f_click1()

Bolle di eventi in jQuery

Che cos'è la "bolla di eventi"? Diamo un'occhiata al seguente esempio (Listato 6.6).

Listato 6.6. Evento spumeggiante



affiorante</i><i>eventi</i><i>





Clictopo qui




In questo esempio, abbiamo scritto un gestore di eventi onclick per tutti gli elementi della pagina. Proviamo a fare clic con il tasto sinistro sulla parola qui. Di conseguenza, invece di un evento, otteniamo un'intera sequenza di eventi.
elemento SPAN
elemento P
elemento CORPO
Elemento HTML

In altre parole, l'evento onclick viene passato in sequenza all'elemento padre successivo. Per un tag span, l'elemento padre è un paragrafo. Per un paragrafo, l'elemento padre è il corpo del documento e per il corpo del documento, l'elemento padre è il tag html. Questo flusso di eventi è chiamato bubbling di eventi.

A volte è necessario interrompere il bubbling degli eventi. Per fare ciò, restituisci false all'interno della funzione di callback. Dimostriamolo con un esempio (Listato 6.7).

Listato 6.7. Interruzione delle bolle di eventi



Interruzione delle bolle di eventi





Clictopo qui




Proviamo ora a fare clic con il pulsante sinistro del mouse sulla parola qui. Di conseguenza, invece di quattro eventi, ne otteniamo solo uno.
elemento SPAN

Oltre a restituire false, è possibile utilizzare il metodo stopPropagation() dell'oggetto evento (Listato 6-8) per interrompere il bubbling degli eventi.

Listato 6.8. Arresto del popup con il metodo stopPropagation()

stopPropagation()


Interrompere le bollicine con un metodo</i><br><i>stopPropagation()





Clictopo qui




Azioni predefinite in jQuery e loro annullamento

A molti eventi sono assegnate azioni predefinite, ad es. azioni che il browser Web esegue in risposta agli eventi che si verificano nel documento. Ad esempio, quando si fa clic su un collegamento ipertestuale, l'azione predefinita è andare all'URL specificato, fare clic sul pulsante Invia comporta l'invio dei dati del modulo e così via.

A volte è necessario interrompere le azioni predefinite. Ad esempio, quando invii i dati del modulo, puoi verificare che corrispondano a ciò che ti aspetti e, se non corrispondono ai tuoi requisiti, interrompere l'invio. Per fare ciò, restituisci false all'interno della funzione del gestore.

Il Listato 6.9 mostra un esempio di convalida dell'immissione di un indirizzo e-mail nel campo E-mail e di interruzione di un collegamento ipertestuale quando si verifica un errore.

Listato 6.9. Interruzione delle azioni predefinite



Interruzione delle azioni predefinite






E-mail:





Clicpertransizionesucollegamento



Oltre a restituire false, è possibile utilizzare il metodo preventDefault() dell'oggetto evento (Listato 6-10) per annullare l'azione predefinita.

Listato 6.10. Interruzione degli eventi con il metodo preventDefault()

preventDefault()


Interruzione di eventi con un metodo</i><br><i>preventDefault()






E-mail:





Clicpertransizionesucollegamento



SSH(Ing. Secure SHell - "secure shell") - un protocollo di rete a livello di sessione che consente di controllare in remoto il sistema operativo e di eseguire il tunneling delle connessioni TCP (ad esempio, per trasferire file). Simile per funzionalità ai protocolli Telnet e rlogin, ma a differenza di questi, crittografa tutto il traffico, comprese le password trasmesse. SSH consente di scegliere tra diversi algoritmi di crittografia. I client SSH e i server SSH sono disponibili per la maggior parte dei sistemi operativi di rete.

SSH consente la trasmissione sicura di qualsiasi altro protocollo di rete in un ambiente non sicuro. Pertanto, non solo puoi lavorare in remoto su un computer tramite una shell dei comandi, ma anche trasmettere un flusso audio o video su un canale crittografato (ad esempio da una webcam). SSH può anche utilizzare la compressione dei dati trasmessi per la successiva crittografia, il che è conveniente, ad esempio, per l'avvio remoto dei client X Window System.

La maggior parte dei provider di hosting fornisce ai clienti l'accesso SSH alla propria home directory a pagamento. Questo può essere conveniente sia per lavorare nella riga di comando che per avviare programmi in remoto (incluse applicazioni grafiche).

La prima versione del protocollo, SSH-1, è stata sviluppata nel 1995 dal ricercatore Tatu Olönen presso l'Università di Tecnologia di Helsinki, in Finlandia. SSH-1 è stato scritto per essere più privato dei protocolli rlogin, telnet e rsh. Nel 1996 è stata sviluppata una versione più sicura del protocollo, SSH-2, incompatibile con SSH-1. Il protocollo ha guadagnato ancora più popolarità e nel 2000 aveva circa due milioni di utenti. Attualmente, il termine "SSH" di solito si riferisce a SSH-2, perché. la prima versione del protocollo, a causa di notevoli carenze, è ormai praticamente inutilizzata.

Buona giornata, iscritti curiosi e ospiti del blog. Oggi ti guideremo attraverso una sezione utile in un linguaggio di scripting basato su prototipi, ovvero l'evento JavaScript mouseover.

Voglio che tu abbia una buona comprensione di eventi come clic, mouse su, mousedown, mouseover e altri, capisca la differenza tra loro e impari come usarli per risolvere i tuoi problemi. Naturalmente, dopo ogni materiale teorico chiave, puoi trovare un'implementazione software di esempi. Bene, iniziamo!

Tutte le informazioni sugli eventi del mouse

Per il mouse, ci sono diversi eventi che coprono completamente le varie azioni del cursore sulla pagina. Tra questi ci sono quelli che vengono attivati ​​facendo clic su un oggetto, passandoci sopra o spostando il puntatore su una finestra aperta. Tutti possono essere divisi in due gruppi: eventi semplici e complessi (compositi).

Iniziamo in modo semplice

Cominciamo con eventi semplici. Ce ne sono solo cinque. Per comodità, ho inserito una descrizione di ogni strumento nella tabella allegata di seguito.

Nome Descrizione
mouse verso il basso L'evento denominato viene chiamato quando uno dei pulsanti del mouse viene premuto ma non ancora rilasciato.
alza il mouse E questo funziona già quando viene rilasciato il pulsante precedentemente tenuto.
passa il mouse Chiamato quando il cursore viene posizionato su un oggetto in elaborazione.
uscita del mouse Gestisce l'azione di uscita del cursore dall'area dell'elemento.
mossa del mouse Qualsiasi movimento del puntatore su una determinata area attiva l'evento corrente.

Bene, ora, per consolidare il materiale, analizzeremo un esempio. Ho creato un piccolo programma che cambia le emozioni di una faccina quando si passa il mouse e si sposta il cursore lontano.

Passa il mouse sull'immagine e cambierà.

Ora mettilo da parte e osserva i cambiamenti

È tempo di raggruppamento

Passiamo ora alle viste complesse. Ognuno di questi eventi ne include diversi semplici. In questo caso, tutti i componenti di un evento complesso non si attivano contemporaneamente, ma si allineano in coda. Pertanto, a volte potresti osservare una situazione tale che quando fai clic rapidamente, ad esempio, sulle voci di menu di un sito Web, i clic a volte non funzionano.

Perchè così? La risposta è abbastanza semplice.

L'elaborazione degli eventi avviene a una velocità massima consentita. E allo stesso tempo, non dimenticare che gli eventi vengono elaborati a turno. Ciò significa che se si fa clic su diversi elementi troppo rapidamente, la catena di elaborazione potrebbe non essere completata completamente.

Quindi, di seguito sono riportati gli eventi composti.

Come hai già capito, gli eventi complessi semplificano in qualche modo la vita degli sviluppatori, incluso un insieme di eventi semplici necessari contemporaneamente. Di conseguenza, oggi nessuno può immaginare la consueta lavorazione di bottoni o altri elementi senza la stessa clic.

Per una conoscenza pratica del funzionamento degli eventi di cui sopra, ho modificato l'applicazione precedente. Analizza il risultato del mio lavoro.

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 Esempio di passaggio del mouse su un elemento della pagina

Esempio di passaggio del mouse su un elemento della pagina

Come puoi vedere, tutto è molto semplice. Questi elementi sono facili da richiamare nel codice e si legano ad azioni specifiche.

Articoli correlati in alto