Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Mudar evento em tempo de execução


Rafael Laurindo

Pergunta

Pessoal, como faço para mudar o conteúdo de um evento em tempo de execução.

Ex.:

var el = document.getElementById('htmlElement')
 el.onkeypress = 'return func(param)'

Gostaria disso para a seguinte finalidade, inserir um return na frente de uma função chamada no evento, e chamar o evento novamente, para que seja executado com o return na frente da função chamada.

Editado por Rafael Laurindo
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Rafael,

Sempre que eu preciso mudar a função de um evento eu utilizo o método unbind do JQuery:

Suponha que você tem um botão com id "butEvento" e o onclick dele chame a função '_funcClick1()':

$('#butEvento').click(function(){_funcClick1();});
Para modificar o onlick:
$('#butEvento').unbind('click'); //parametro: nome do evento
$('#butEvento').click(function(){return _funcClick1()}); //Alterou o "ONCLICK";
$('#butEvento').click(); //Simula o click no botão.

Não sei se é bem isso mas quem sabe ajude ....

Link para o comentário
Compartilhar em outros sites

  • 0

Então, lembra deste tópico: http://scriptbrasil.com.br/forum/index.php?showtopic=151717

Eu gostaria de não precisar programar o onkeypress com um return prefixado, como mostra o último POST deste tópico, mas gostaria de inserir este return com o DOM/js. Entendeu? Se for isso mesmo que está me mostrando, beleza.

Editado por Rafael Laurindo
Link para o comentário
Compartilhar em outros sites

  • 0

O problema é o seguinte, eu tenho que remover e depois adicionar novamente, porém desta vez com o return na frente da função informada. Isso não vai fazer com que o script entre em loop infinito não? Pois tenho que fazer uma função chamar ela mesma.

Link para o comentário
Compartilhar em outros sites

  • 0

Quando eu não quero que nada seja inserido, numa caixa de texto, por exemplo, eu coloco em um evento o return + a função, e não só chamo a função, se a função retornar false, nada será inserido na caixa de texto.

Ex.:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" >
	<title>Mask</title>
<script type="text/javascript" src="js/Script.js"></script>
<script type="text/javascript">
	//Ver como fazer para remover um elemento do HTML 
	Script.paths_include('js')
	Script.import('HTMLElement.ext.js')
</script>
</head>
<body onload="">
<form>
	<!-- sem o "return" não funciona, ele permite a inserção de outros caracteres que não de 0 à 9 e "/" -->
	Data: <input id="txtTel" type="text" onkeypress="return HTMLElement.mask(this.id, '__/__/____', event)" title="só numeros"/>
	<!-- Por isso, gostaria de inserir o "return" dinâmicamente, ou seja, nõa diretamente no código HTML. Ou de não precisar inserir o return, nem mesmo dinâmicamente, tendo outra solução. -->
</form>

</body>
</html>

Portanto, era isso mesmo que eu queria. Só gostaria de saber mais uma coisa, esse event.preventDefault é uma especificação da W3C? Porque só funcionou no FF :( Como faço para ver se é?

Editado por Rafael Laurindo
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...