Depois de disparar um evt.preventDefault()
, como posso retomar as ações padrão novamente?
javascript
jquery
preventdefault
Bryan
fonte
fonte
Respostas:
Conforme comentado por @Prescott, o oposto de:
Poderia ser:
Equivale essencialmente a 'fazer o padrão' , já que não o estamos impedindo.
Caso contrário, estou inclinado a apontar as respostas fornecidas por outros comentários e respostas:
Como desvincular um ouvinte que está chamando event.preventDefault () (usando jQuery)?
Como reativar event.preventDefault?
Observe que a segunda foi aceita com uma solução de exemplo, fornecida por redsquare (postada aqui para uma solução direta, caso ela não seja fechada como duplicada):
fonte
e seu oposto
Felicidades!
fonte
return true
: nothing.Para processar um comando antes de continuar um link de um
click
evento no jQuery:Por exemplo:
<a href="http://google.com/" class="myevent">Click me</a>
Impeça e siga com o jQuery:
Ou simplesmente corra
window.location = this.href;
atrás dopreventDefault();
fonte
Eu tive que atrasar o envio de um formulário no jQuery para executar uma chamada assíncrona. Aqui está o código simplificado ...
fonte
ESTÁ BEM ! funciona para o evento click:
fonte
e seu oposto (padrão):
fonte: https://developer.mozilla.org/en-US/docs/Web/API/Event/returnValue
fonte
Eu sugeriria o seguinte padrão:
... a menos que esteja faltando alguma coisa.
http://jsfiddle.net/DdvcX/
fonte
Não existe um método oposto de
event.preventDefault()
entender por que você primeiro precisa examinar o queevent.preventDefault()
faz quando o chama.Sob o capô, a funcionalidade para preventDefault está essencialmente chamando um retorno false, que interrompe qualquer execução adicional. Se você está familiarizado com as formas antigas de Javascript, era uma vez na moda usar return false para cancelar eventos em itens como envios de formulários e botões usando return true (antes do jQuery aparecer).
Como você provavelmente já deve ter trabalhado com base na simples explicação acima: o oposto de
event.preventDefault()
nada é. Você simplesmente não impede o evento; por padrão, o navegador permitirá o evento se você não o estiver impedindo.Veja abaixo uma explicação:
No código acima, você notará que estamos verificando se allowSubmit é falso. Isso significa que impediremos o envio do formulário
event.preventDefault
e, em seguida, faremos alguma lógica de validação. Se estivermos felizes, defina allowSubmit como true.Este é realmente o único método eficaz de fazer o oposto de
event.preventDefault()
- você também pode tentar remover eventos, o que essencialmente alcançaria a mesma coisa.fonte
Aqui está algo útil ...
Primeiro, clicamos no link, executamos algum código e depois executamos a ação padrão. Isso será possível usando event.currentTarget Dê uma olhada. Aqui, tentaremos acessar o Google em uma nova guia, mas antes precisamos executar algum código.
fonte
Isto é o que eu costumava definir:
E para desfazê-lo:
fonte
Nenhuma das soluções me ajudou aqui e fiz isso para resolver minha situação.
E a função
clickEvent()
,fonte
Suponho que o "oposto" seria simular um evento. Você poderia usar
.createEvent()
Seguindo o exemplo da Mozilla:
Ref: document.createEvent
O jQuery possui
.trigger()
para que você possa disparar eventos em elementos - às vezes úteis.fonte
jquery on () poderia ser outra solução para isso. escpacialmente quando se trata do uso de espaços para nome .
jquery on () é apenas a maneira atual de vincular eventos (em vez de bind ()). off () é desvincular estes. e quando você usa um espaço para nome, você pode adicionar e remover vários eventos diferentes.
agora, com o uso do namespace, você pode adicionar vários desses eventos e removê-los, dependendo de suas necessidades. Embora o envio não seja o melhor exemplo, isso pode ser útil com um clique ou pressionamento de tecla ou o que for ..
fonte
Esta não é uma resposta direta para a pergunta, mas pode ajudar alguém. O que quero dizer é que você chama apenas preventDefault () com base em algumas condições, pois não há sentido em ter um evento se você chamar preventDefault () para todos os casos. Portanto, ter condições e chamar preventDefault () apenas quando as condições satisfeitas funcionarão da maneira usual para os outros casos.
});
fonte
você pode usar isso após o método "preventDefault"
// Aqui evt.target retorna o evento padrão (por exemplo: defult url etc)
// Aqui salvamos o evento padrão ..
fonte
Você sempre pode usar isso anexado a algum evento de clique em seu script:
exemplo de uso é:
fonte
esse código funcionou para eu re-instanciar o evento após o uso:
fonte
Eu usei o seguinte código. Isso funciona bem para mim.
fonte
event.preventDefault()
;