Anexei um evento a uma caixa de texto usando addEventListener
. Funciona bem. Meu problema surgiu quando eu queria disparar o evento programaticamente a partir de outra função.
Como eu posso fazer isso?
javascript
events
triggers
addeventlistener
dom-events
KoolKabin
fonte
fonte
Respostas:
Você pode usar o fireEvent no IE 8 ou inferior e o dispatchEvent do W3C na maioria dos outros navegadores. Para criar o evento que você deseja disparar, você pode usar um
createEvent
ou outro,createEventObject
dependendo do navegador.Aqui está um trecho de código auto-explicativo (do protótipo) que dispara um evento
dataavailable
em umelement
:fonte
eventName
contém aqui?Um exemplo de trabalho:
Para polyfill de navegadores mais antigos e exemplos mais complexos, consulte a documentação do MDN .
Veja as tabelas de suporte para
EventTarget.dispatchEvent
eCustomEvent
.fonte
detail
é uma propriedade doEvent
, portanto, atribua todos os dados que você deseja acessar na outra extremidade e com os quais acessaevent.detail
. +1Se você não quiser usar o jQuery e não estiver especialmente preocupado com a compatibilidade com versões anteriores, use:
Veja a documentação aqui e aqui .
EDIT: Dependendo da sua configuração, você pode querer adicionar
bubbles: true
:fonte
CustomEvent
e o polyfill correspondente.se você usa jQuery, você pode fazer
e lidar com isso com
onde "[arg0, arg1, ..., argN]" significa que esses argumentos são opcionais.
fonte
Se você estiver suportando o IE9 +, poderá usar o seguinte. O mesmo conceito está incorporado em Você pode não precisar do jQuery .
Se você já está usando jQuery, aqui está a versão jQuery do código acima.
fonte
window.CustomEvent
existe, mas não pode ser chamado como um construtor: caniuse.com/#search=CustomEvent ;)Pesquisei eventos de clique, mouse e mouseup na ativação do mouse usando JavaScript. Encontrei uma resposta fornecida por Juan Mendes . Para a resposta, clique aqui .
Clique aqui e a demonstração ao vivo e abaixo está o código:
fonte
Apenas para sugerir uma alternativa que não envolva a necessidade de chamar manualmente um evento de ouvinte:
O que quer que seu ouvinte de evento faça, mova-o para uma função e chame essa função do ouvinte de evento.
Em seguida, você também pode chamar essa função em qualquer outro lugar para realizar a mesma coisa que o evento quando é acionado.
Acho isso menos "intensivo em código" e mais fácil de ler.
fonte
Eu apenas usei o seguinte (parece ser muito mais simples):
Nesse caso, o evento será acionado apenas se o valor for realmente alterado, da mesma forma que você o acionaria pelo lócus de foco normal perdido realizado pelo usuário.
fonte
element.click()
.Resposta de @ Dorian modificada para trabalhar com o IE:
FIDDLE: https://jsfiddle.net/z6zom9d0/1/
VEJA TAMBÉM:
https://caniuse.com/#feat=customevent
fonte
A resposta aceita não funcionou para mim, nenhuma das createEvent funcionou.
O que funcionou para mim no final foi:
Aqui está um trecho:
Da leitura: https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent
fonte
fonte
Você poderia usar esta função que eu compilei juntos.
Acione um evento abaixo:
Assista ao evento:
Espero que isto ajude!
fonte
Você pode usar o código abaixo para disparar um evento usando o método Element:
Mostrar snippet de código
fonte
A maneira mais eficiente é chamar a mesma função que foi registrada
addEventListener
diretamente.Você também pode acionar um evento falso com
CustomEvent
e co.Finalmente, alguns elementos, como
<input type="file">
suporte a um.click()
método.fonte
isso acionará imediatamente um evento 'beforeinstallprompt'
fonte
Use a chamada de evento jquery. Escreva a linha abaixo onde deseja acionar o onChange de qualquer elemento.
element_id é o ID do elemento cujo onChange você deseja acionar.
Evite o uso de
Porque tem muito menos suporte. Consulte este documento para obter suporte .
fonte
HTML
JS
fonte
O que você quer é algo como isto:
Usando jQuery, seria algo como isto:
fonte
document.getElementByClassName
não existe. 2.document.getElementsByClassName
existe, mas retorna uma lista. 3. isso funciona apenas para alguns poucos eventos nativos. 4. O último exemplo aciona um evento jQuery onde não existe nenhum evento nativo subjacente.