Estou tendo dificuldade para entender como simular um clique do mouse usando o JQuery. Alguém pode me informar sobre o que estou fazendo de errado.
HTML:
<a id="bar" href="http://stackoverflow.com" target="_blank">Don't click me!</a>
<span id="foo">Click me!</span>
jQuery:
jQuery('#foo').on('click', function(){
jQuery('#bar').trigger('click');
});
Demo: FIDDLE
quando clico no botão #foo, quero simular um clique em #bar, no entanto, quando tento isso, nada acontece. Eu também tentei, jQuery(document).ready(function(){...})
mas sem sucesso.
javascript
jquery
html
triggers
eventtrigger
lickmycode
fonte
fonte
jQuery trigger
só funciona se qualquer evento 'jQuery click` for adicionado. Caso contrário, você não poderá fazer nada dessa maneira;Respostas:
Você precisa usar
jQuery('#bar')[0].click();
para simular um clique do mouse no elemento DOM real (não no objeto jQuery), em vez de usar o.trigger()
método jQuery.Nota: O DOM Nível 2
.click()
não funciona em alguns elementos do Safari . Você precisará usar uma solução alternativa.http://api.jquery.com/click/
fonte
Você só precisa colocar um pequeno evento de tempo limite antes de fazer o
.click()
seguinte:fonte
Esse é o comportamento do JQuery. Não sei por que funciona dessa maneira, apenas aciona a função onClick no link.
Experimentar:
fonte
trigger()
destina-se a executar a parte JavaScript do evento click . É muito semelhante à criação de um quefunction var() {}
é reutilizado várias vezes.Veja minha demonstração: http://jsfiddle.net/8AVau/1/
fonte
this.click();
em umelse if(this.click)
Pode ser útil:
O código que chama o gatilho deve ir depois que o evento é chamado.
Por exemplo, eu tenho algum código que quero que seja executado quando o valor #expense_tickets for alterado e também quando a página for recarregada
fonte
trigger()
não estar funcionando. Acontece que eu tinha o código de gatilho definido ACIMA da função que estava chamando - então o gancho não estava realmente no lugar. Doh!O jQuery's
.trigger('click');
fará com que um evento seja acionado apenas nesse evento, e também não acionará a ação padrão do navegador.Você pode simular a mesma funcionalidade com o seguinte JavaScript:
fonte
Experimente o que funciona para mim:
fonte
Tentei as duas principais respostas, não funcionou até remover o "display: none" dos elementos de entrada do arquivo. Depois voltei ao .trigger () que também funcionava no safari for windows.
Então, conclusão: Não use display: none; para ocultar sua entrada de arquivo , você pode usar opacity: 0.
fonte
Tecnicamente, não é uma resposta para isso, mas um bom uso da resposta aceita ( https://stackoverflow.com/a/20928975/82028 ) para criar botões next e prev para as guias nos campos do jQuery ACF:
fonte
Apenas use isto:
fonte
Você não pode simular um evento de clique com javascript. A
.trigger()
função jQuery aciona apenas um evento chamado "clique" no elemento, que você pode capturar com o.on()
método jQuery.fonte