Foros del Web » Programando para Internet » Javascript » Frameworks JS »

ejecutar evento con teclas

Estas en el tema de ejecutar evento con teclas en el foro de Frameworks JS en Foros del Web. Buenas, como puedo hacer que al mantener precionado la tecla alt + c me ejecute una funcion?? Saludos...
  #1 (permalink)  
Antiguo 03/04/2011, 13:11
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 17 años
Puntos: 2
ejecutar evento con teclas

Buenas,

como puedo hacer que al mantener precionado la tecla alt + c me ejecute una funcion??

Saludos
  #2 (permalink)  
Antiguo 03/04/2011, 13:44
Avatar de laratik  
Fecha de Ingreso: mayo-2010
Ubicación: Cali
Mensajes: 317
Antigüedad: 14 años, 5 meses
Puntos: 63
Respuesta: ejecutar evento con teclas

que tal con:

Código HTML:
<html>
	<head>
		<title>Eventos onkeypress</title>
		<script type="text/javascript">
			function pulsar(e) {
				if(e.altKey && e.charCode == 99) {
					alert("pulsada alt+C");
				}
			}
		</script>
	</head>
	
	<body>
		<input type="text" onkeypress="pulsar(event)"/><br/><br/>
	</body>
</html> 
__________________
Programar apasiona y lo que apasiona es un arte, por lo tanto programar es un arte.

Quiero karma para en mi próxima vida ser un billonario bien dotado con alas.
  #3 (permalink)  
Antiguo 03/04/2011, 15:57
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 17 años
Puntos: 2
Respuesta: ejecutar evento con teclas

Cita:
Iniciado por laratik Ver Mensaje
que tal con:

Código HTML:
<html>
	<head>
		<title>Eventos onkeypress</title>
		<script type="text/javascript">
			function pulsar(e) {
				if(e.altKey && e.charCode == 99) {
					alert("pulsada alt+C");
				}
			}
		</script>
	</head>
	
	<body>
		<input type="text" onkeypress="pulsar(event)"/><br/><br/>
	</body>
</html> 
porque pones 99 para la letra c si lo busque en internet y es el 67.
  #4 (permalink)  
Antiguo 03/04/2011, 16:21
Avatar de laratik  
Fecha de Ingreso: mayo-2010
Ubicación: Cali
Mensajes: 317
Antigüedad: 14 años, 5 meses
Puntos: 63
Respuesta: ejecutar evento con teclas

y ¿no te funciona? por que hice un alert(e.charCode); pulse c y me dio 99 solo por eso
__________________
Programar apasiona y lo que apasiona es un arte, por lo tanto programar es un arte.

Quiero karma para en mi próxima vida ser un billonario bien dotado con alas.
  #5 (permalink)  
Antiguo 03/04/2011, 16:56
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: ejecutar evento con teclas

Es verdad que en tu código sale como 99, pero es en realidad 67 para este tipo de código cross-browser
Código Javascript:
Ver original
  1. <script type="text/javaScript">  
  2. function testKeyCode(e) {  
  3.     var keycode;  
  4.     if (window.event) keycode = window.event.keyCode;  
  5.     else if (e) keycode = e.which;  
  6.     var e = e || window.event;  
  7.     if(keycode==67 && e.altKey){  
  8.         alert("alt-c was pressed");  
  9.     }  
  10. }  
  11. document.onkeydown = testKeyCode;  
  12. </script>

Lo otro es importante saber cuando ejecutar este tipo de código. La razón es cuando ocurren los eventos. El orden de los eventos es así:

onkeydown
onkeyup
onkeypress

¿Porque es importante saber esto? Los navegadores también tienen "shorcuts", si tratas de ejecutar algún código usando onkeyup o onkeypress, el navegador va a tender a sobre-escribir con lo que tiene declarado. Por tal razón te recomiendo que uses onkeydown para que lo ejecute en el primer momento.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 03/04/2011, 17:17
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 17 años
Puntos: 2
Respuesta: ejecutar evento con teclas

Cita:
Iniciado por abimaelrc Ver Mensaje
Es verdad que en tu código sale como 99, pero es en realidad 67 para este tipo de código cross-browser
Código Javascript:
Ver original
  1. <script type="text/javaScript">  
  2. function testKeyCode(e) {  
  3.     var keycode;  
  4.     if (window.event) keycode = window.event.keyCode;  
  5.     else if (e) keycode = e.which;  
  6.     var e = e || window.event;  
  7.     if(keycode==67 && e.altKey){  
  8.         alert("alt-c was pressed");  
  9.     }  
  10. }  
  11. document.onkeydown = testKeyCode;  
  12. </script>

Lo otro es importante saber cuando ejecutar este tipo de código. La razón es cuando ocurren los eventos. El orden de los eventos es así:

onkeydown
onkeyup
onkeypress

¿Porque es importante saber esto? Los navegadores también tienen "shorcuts", si tratas de ejecutar algún código usando onkeyup o onkeypress, el navegador va a tender a sobre-escribir con lo que tiene declarado. Por tal razón te recomiendo que uses onkeydown para que lo ejecute en el primer momento.
vale me quedo mas claro. ahora lo pase a jquey pero no me funciona si habilito las dos teclas al mismo tiempo.
Código Javascript:
Ver original
  1. $('body').keydown(function(event) {
  2.   if (event.keyCode == '18' && event.keyCode == '67') {
  3.       alert("s");
  4.    }
  5. });
  6.  
  7. con una sola tecla si que me funciona pero en el navegador chrome pero el firefox ninguna de las dos
  #7 (permalink)  
Antiguo 04/04/2011, 05:44
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: ejecutar evento con teclas

buenas gente...

Cita:
Iniciado por abimaelrc Ver Mensaje
Lo otro es importante saber cuando ejecutar este tipo de código. La razón es cuando ocurren los eventos. El orden de los eventos es así:

onkeydown
onkeyup
onkeypress
muy curioso lo que mencionas. al menos las pruebas que realice el orden es el siguiente: onkeydown, onkeypress, y onkeyup.

Cita:
Iniciado por Blashak Ver Mensaje
porque pones 99 para la letra c si lo busque en internet y es el 67.
lo que sucede es que dependiendo del tipo de evento, keycode puede adquirir un valor distinto para una misma tecla. por ejemplo, en las letras del alfabeto, keydown y keyup siempre devuelve el keycode en mayuscula, independientemente tuvieras presionado o no la tecla Shift. por el contrario, keypress genera el valor tomando ese detalle en consideracion.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #8 (permalink)  
Antiguo 04/04/2011, 08:04
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: ejecutar evento con teclas

Cita:
Iniciado por zerokilled Ver Mensaje
muy curioso lo que mencionas. al menos las pruebas que realice el orden es el siguiente: onkeydown, onkeypress, y onkeyup.
Fíjate al principio me daba como te indique, parece que la prueba que había hecho estaba haciendo algo mal, bueno pues lo hice así y me resultó como indicas onkeydown, onkeypress y onkeyup.
Código PHP:
<div id="keys"></div>
<
script type="text/javascript">
(function(){
    var 
keys document.getElementById('keys');
    
keys.innerHTML '';
    
document.onkeydown = function(){
        
keys.appendChild(document.createTextNode('down '));
    }
    
document.onkeyup = function(){
        
keys.appendChild(document.createTextNode('up '));
    }
    
document.onkeypress = function(){
        
keys.appendChild(document.createTextNode('press '));
    }
})();
</script> 
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 04/04/2011, 10:57
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 17 años
Puntos: 2
Respuesta: ejecutar evento con teclas

pero sigo sin poder hacer funcionar al precionar las dos teclas con jquery como comentaba mas arriba.

Código Javascript:
Ver original
  1. $('body').keydown(function(event) {  if (event.keyCode == '18' && event.keyCode == '67') {      alert("s");   }});
  #10 (permalink)  
Antiguo 04/04/2011, 11:17
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Hola, Blashak

Muevo tu tema al foro de Frameworks y Plugins Javascript desde Javascript.

Saludos,
  #11 (permalink)  
Antiguo 04/04/2011, 15:24
Avatar de laratik  
Fecha de Ingreso: mayo-2010
Ubicación: Cali
Mensajes: 317
Antigüedad: 14 años, 5 meses
Puntos: 63
Respuesta: ejecutar evento con teclas

Cita:
Iniciado por Blashak Ver Mensaje
pero sigo sin poder hacer funcionar al precionar las dos teclas con jquery como comentaba mas arriba.

Código Javascript:
Ver original
  1. $('body').keydown(function(event) {  if (event.keyCode == '18' && event.keyCode == '67') {      alert("s");   }});
Utiliza event.altKey en vez de event.keyCode == '18'

Código Javascript:
Ver original
  1. $('body').keydown(function(event) {  if (event.altKey && event.keyCode == '67') {      alert("s");   }});

mas informacion
__________________
Programar apasiona y lo que apasiona es un arte, por lo tanto programar es un arte.

Quiero karma para en mi próxima vida ser un billonario bien dotado con alas.

Etiquetas: javascript, teclas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:34.