Bunas gente tengo un problemita, he intentado usar el plugin Elements.Events.Pseudos:keys de mootools pero tengo un bardo con la tecla alt;
por ejemplo
Código:
myElement.addEvent('keydown:keys(alt+a)', function(){
alert('You pressed the following keys: alt and a');
});
el alert sale cuando presionas alt+a ... la cuestion es que luego de la primer ejecucion la funcion se sigue ejecutando cada vez que presionas la tecla a -sin el alt-
luego de meterme un poco en el codigo decidi escribir mi propia versión del plugin
Código:
(function(){
var stack=[];
var map;
var _this;
hotKeys=new Class
({
initialize:function(args)
{
if(_this) return; //single instance
map = args || {};
_this=this;
$(document).addEvent('keydown',this.add);
$(document).addEvent('keyup',this.clear);
},
add:function(e)
{
e.stop();
if(stack.contains(e.key))return
stack.push(e.key);
if(map[_this.getkey()])
{
map[keys]();
return ;
}
stack.push('+');
},
clear:function(e)
{
e.stop();
for(var i=stack.length;i--;)
if (stack[i]===e.key){stack.splice(i,2);}
},
getkey:function()
{
keys='';
stack.each(function(i)
{
keys+=i;
})
return keys;
}
})
})();
//aqui creamos nuestro listener
window.addEvent('domready', function()
{
new hotKeys(
{
'control+alt+n':function(){alert('control+alt+n');},
'control+alt+g':function(){alert('control+alt+g');}
});
});
Aquí me encontré otra vez con el mismo comportamiento... pero esta vez me quedo clara la razón, cuando se presiona y sostiene una combinación de teclas del estilo alt+a y luego se sueltan el evento keyup no se ejecuta para la tecla alt y ninguna de las F1 .. F12 ...
Alguna idea de como resolver esto??? nota: en chrome funciona....