jQuery - Tratamento de Eventos
Temos a capacidade de criar páginas da web dinâmicas usando eventos. Eventos são ações que podem ser detectadas por seu aplicativo da web.
A seguir estão os exemplos de eventos -
- Um clique do mouse
- Uma página da web carregando
- Passando o mouse sobre um elemento
- Envio de um formulário HTML
- Um pressionamento de tecla em seu teclado, etc.
Quando esses eventos são disparados, você pode usar uma função personalizada para fazer praticamente o que quiser com o evento. Essas funções personalizadas chamam manipuladores de eventos.
Binding Event Handlers
Usando o modelo de evento jQuery, podemos estabelecer manipuladores de eventos em elementos DOM com o bind() método da seguinte forma -
<html>
<head>
<title>The jQuery Example</title>
<script type = "text/javascript"
src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>
<script type = "text/javascript" language = "javascript">
$(document).ready(function() {
$('div').bind('click', function( event ){
alert('Hi there!');
});
});
</script>
<style>
.div{ margin:10px;padding:12px; border:2px solid #666; width:60px;}
</style>
</head>
<body>
<p>Click on any square below to see the result:</p>
<div class = "div" style = "background-color:blue;">ONE</div>
<div class = "div" style = "background-color:green;">TWO</div>
<div class = "div" style = "background-color:red;">THREE</div>
</body>
</html>
Este código fará com que o elemento de divisão responda ao evento de clique; quando um usuário clica dentro desta divisão, o alerta será mostrado.
Isso produzirá o seguinte resultado -
A sintaxe completa do comando bind () é a seguinte -
selector.bind( eventType[, eventData], handler)
A seguir está a descrição dos parâmetros -
eventType- Uma string contendo um tipo de evento JavaScript, como clicar ou enviar. Consulte a próxima seção para uma lista completa de tipos de eventos.
eventData - Este parâmetro opcional é um mapa de dados que será passado para o manipulador de eventos.
handler - Uma função a ser executada cada vez que o evento é acionado.
Removendo manipuladores de eventos
Normalmente, depois que um manipulador de eventos é estabelecido, ele permanece em vigor pelo restante da vida útil da página. Pode ser necessário quando você deseja remover o manipulador de eventos.
jQuery fornece o unbind()comando para remover um manipulador de eventos existente. A sintaxe de unbind () é a seguinte -
selector.unbind(eventType, handler)
or
selector.unbind(eventType)
A seguir está a descrição dos parâmetros -
eventType- Uma string contendo um tipo de evento JavaScript, como clicar ou enviar. Consulte a próxima seção para uma lista completa de tipos de eventos.
handler - Se fornecido, identifica o ouvinte específico que deve ser removido.
Tipos de Eventos
Sr. Não. | Tipo e descrição do evento |
---|---|
1 | blur Ocorre quando o elemento perde o foco. |
2 | change Ocorre quando o elemento muda. |
3 | click Ocorre quando um clique do mouse. |
4 | dblclick Ocorre quando um clique duplo do mouse. |
5 | error Ocorre quando há um erro no carregamento ou descarregamento etc. |
6 | focus Ocorre quando o elemento obtém o foco. |
7 | keydown Ocorre quando a tecla é pressionada. |
8 | keypress Ocorre quando a tecla é pressionada e liberada. |
9 | keyup Ocorre quando a tecla é liberada. |
10 | load Ocorre quando o documento é carregado. |
11 | mousedown Ocorre quando o botão do mouse é pressionado. |
12 | mouseenter Ocorre quando o mouse entra em uma região de elemento. |
13 | mouseleave Ocorre quando o mouse sai de uma região de elemento. |
14 | mousemove Ocorre quando o ponteiro do mouse se move. |
15 | mouseout Ocorre quando o ponteiro do mouse sai de um elemento. |
16 | mouseover Ocorre quando o ponteiro do mouse se move sobre um elemento. |
17 | mouseup Ocorre quando o botão do mouse é liberado. |
18 | resize Ocorre quando a janela é redimensionada. |
19 | scroll Ocorre quando a janela é rolada. |
20 | select Ocorre quando um texto é selecionado. |
21 | submit Ocorre quando o formulário é enviado. |
22 | unload Ocorre quando os documentos são descarregados. |
O Objeto do Evento
A função de retorno de chamada tem um único parâmetro; quando o manipulador é chamado, o objeto de evento JavaScript passa por ele.
O objeto de evento é freqüentemente desnecessário e o parâmetro é omitido, já que contexto suficiente geralmente está disponível quando o manipulador é obrigado a saber exatamente o que precisa ser feito quando o manipulador é disparado; no entanto, existem certos atributos que você precisa acessar.
Os Atributos do Evento
Sr. Não. | Descrição da Propriedade |
---|---|
1 | altKey Definido como verdadeiro se a tecla Alt foi pressionada quando o evento foi disparado, falso se não. A tecla Alt é rotulada como Option na maioria dos teclados Mac. |
2 | ctrlKey Definido como verdadeiro se a tecla Ctrl foi pressionada quando o evento foi disparado, falso se não. |
3 | data O valor, se houver, passado como o segundo parâmetro para o comando bind () quando o manipulador foi estabelecido. |
4 | keyCode Para eventos keyup e keydown, isso retorna a tecla que foi pressionada. |
5 | metaKey Definido como verdadeiro se a tecla Meta foi pressionada quando o evento foi disparado, falso se não. A tecla Meta é a tecla Ctrl em PCs e a tecla Command em Macs. |
6 | pageX Para eventos de mouse, especifica a coordenada horizontal do evento em relação à origem da página. |
7 | pageY Para eventos de mouse, especifica a coordenada vertical do evento em relação à origem da página. |
8 | relatedTarget Para alguns eventos de mouse, identifica o elemento que o cursor saiu ou inseriu quando o evento foi disparado. |
9 | screenX Para eventos de mouse, especifica a coordenada horizontal do evento em relação à origem da tela. |
10 | screenY Para eventos de mouse, especifica a coordenada vertical do evento em relação à origem da tela. |
11 | shiftKey Definido como verdadeiro se a tecla Shift foi pressionada quando o evento foi disparado, falso se não. |
12 | target Identifica o elemento para o qual o evento foi disparado. |
13 | timeStamp O carimbo de data / hora (em milissegundos) quando o evento foi criado. |
14 | type Para todos os eventos, especifica o tipo de evento que foi disparado (por exemplo, clique). |
15 | which Para eventos de teclado, especifica o código numérico para a tecla que causou o evento, e para eventos de mouse, especifica qual botão foi pressionado (1 para a esquerda, 2 para o meio, 3 para a direita). |
<html>
<head>
<title>The jQuery Example</title>
<script type = "text/javascript"
src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>
<script type = "text/javascript" language = "javascript">
$(document).ready(function() {
$('div').bind('click', function( event ){
alert('Event type is ' + event.type);
alert('pageX : ' + event.pageX);
alert('pageY : ' + event.pageY);
alert('Target : ' + event.target.innerHTML);
});
});
</script>
<style>
.div{ margin:10px;padding:12px; border:2px solid #666; width:60px;}
</style>
</head>
<body>
<p>Click on any square below to see the result:</p>
<div class = "div" style = "background-color:blue;">ONE</div>
<div class = "div" style = "background-color:green;">TWO</div>
<div class = "div" style = "background-color:red;">THREE</div>
</body>
</html>
Isso produzirá o seguinte resultado -
Os Métodos de Evento
Há uma lista de métodos que podem ser chamados em um objeto de evento -
Sr. Não. | Método e Descrição |
---|---|
1 | preventDefault () Evita que o navegador execute a ação padrão. |
2 | isDefaultPrevented () Retorna se event.preventDefault () já foi chamado neste objeto de evento. |
3 | stopPropagation () Interrompe o borbulhamento de um evento para os elementos pai, evitando que qualquer manipulador pai seja notificado sobre o evento. |
4 | isPropagationStopped () Retorna se event.stopPropagation () já foi chamado neste objeto de evento. |
5 | stopImmediatePropagation () Impede a execução do restante dos manipuladores. |
6 | isImmediatePropagationStopped () Retorna se event.stopImmediatePropagation () já foi chamado neste objeto de evento. |
Métodos de manipulação de eventos
A tabela a seguir lista métodos importantes relacionados a eventos -
Sr. Não. | Método e Descrição |
---|---|
1 | vincular (tipo, [dados], fn) Vincula um manipulador a um ou mais eventos (como clique) para cada elemento correspondido. Também pode ligar eventos personalizados. |
2 | desligado (eventos [, seletor] [, manipulador (objetoEvento)]) Isso faz o oposto de ao vivo, ele remove um evento ao vivo vinculado. |
3 | pairar (acima, fora) Simula pairar, por exemplo, mover o mouse para dentro e para fora de um objeto. |
4 | em (eventos [, seletor] [, dados], manipulador) Vincula um manipulador a um evento (como um clique) para todos os elementos correspondentes atuais e futuros. Também pode ligar eventos personalizados. |
5 | um (tipo, [dados], fn) Vincula um manipulador a um ou mais eventos a serem executados uma vez para cada elemento correspondido. |
6 | pronto (fn) Vincula uma função a ser executada sempre que o DOM está pronto para ser percorrido e manipulado. |
7 | gatilho (evento, [dados]) Acione um evento em cada elemento correspondente. |
8 | triggerHandler (evento, [dados]) Aciona todos os manipuladores de eventos associados em um elemento. |
9 | desvincular ([tipo], [fn]) Isso faz o oposto de vincular, remove eventos vinculados de cada um dos elementos correspondentes. |
Métodos auxiliares de eventos
jQuery também fornece um conjunto de funções auxiliares de eventos que podem ser usadas para acionar um evento para vincular qualquer tipo de evento mencionado acima.
Métodos de gatilho
A seguir está um exemplo que aciona o evento de desfoque em todos os parágrafos -
$("p").blur();
Métodos de ligação
A seguir está um exemplo que ligaria um click evento em todos os <div> -
$("div").click( function () {
// do something here
});
Sr. Não. | Método e Descrição |
---|---|
1 | blur( ) Aciona o evento de desfoque de cada elemento correspondente. |
2 | blur( fn ) Vincule uma função ao evento de desfoque de cada elemento correspondente. |
3 | change( ) Aciona o evento de mudança de cada elemento correspondido. |
4 | change( fn ) Vincula uma função ao evento de mudança de cada elemento correspondido. |
5 | click( ) Aciona o evento de clique de cada elemento correspondido. |
6 | click( fn ) Vincula uma função ao evento de clique de cada elemento correspondido. |
7 | dblclick( ) Aciona o evento dblclick de cada elemento correspondido. |
8 | dblclick( fn ) Vincula uma função ao evento dblclick de cada elemento correspondido. |
9 | error( ) Aciona o evento de erro de cada elemento correspondido. |
10 | error( fn ) Vincula uma função ao evento de erro de cada elemento correspondido. |
11 | focus( ) Aciona o evento de foco de cada elemento correspondente. |
12 | focus( fn ) Vincula uma função ao evento de foco de cada elemento correspondido. |
13 | keydown( ) Aciona o evento keydown de cada elemento correspondido. |
14 | keydown( fn ) Vincule uma função ao evento keydown de cada elemento correspondente. |
15 | keypress( ) Aciona o evento de pressionamento de tecla de cada elemento correspondente. |
16 | keypress( fn ) Vincula uma função ao evento de pressionamento de tecla de cada elemento correspondido. |
17 | keyup( ) Aciona o evento keyup de cada elemento correspondido. |
18 | keyup( fn ) Vincule uma função ao evento de ativação de cada elemento correspondido. |
19 | load( fn ) Vincula uma função ao evento de carregamento de cada elemento correspondido. |
20 | mousedown( fn ) Vincula uma função ao evento mousedown de cada elemento correspondido. |
21 | mouseenter( fn ) Vincule uma função ao evento mouseenter de cada elemento correspondido. |
22 | mouseleave( fn ) Vincule uma função ao evento mouseeleave de cada elemento correspondente. |
23 | mousemove( fn ) Vincule uma função ao evento mousemove de cada elemento correspondente. |
24 | mouseout( fn ) Vincule uma função ao evento mouseout de cada elemento correspondido. |
25 | mouseover( fn ) Vincule uma função ao evento mouseover de cada elemento correspondente. |
26 | mouseup( fn ) Vincule uma função ao evento mouseup de cada elemento correspondido. |
27 | resize( fn ) Vincule uma função ao evento de redimensionamento de cada elemento correspondente. |
28 | scroll( fn ) Vincule uma função ao evento de rolagem de cada elemento correspondido. |
29 | select( ) Acione o evento de seleção de cada elemento correspondido. |
30 | select( fn ) Vincule uma função ao evento de seleção de cada elemento correspondido. |
31 | submit( ) Acione o evento de envio de cada elemento correspondente. |
32 | submit( fn ) Vincule uma função ao evento de envio de cada elemento correspondido. |
33 | unload( fn ) Vincula uma função ao evento de descarregamento de cada elemento correspondido. |