simular - jquery: pulsación de tecla, ctrl+c(o algún combo así)
keypress jquery ejemplos (8)
Intento crear accesos directos en el sitio web que estoy creando. Sé que puedo hacerlo de esta manera:
if(e.which == 17) isCtrl=true;
if(e.which == 83 && isCtrl == true) {
alert(''CTRL+S COMBO WAS PRESSED!'')
//run code for CTRL+S -- ie, save!
e.preventDefault();
}
Pero el siguiente ejemplo es más fácil y menos código, pero no es un evento de pulsación de tecla combinada:
$(document).keypress("c",function() {
alert("Just C was pressed..");
});
Entonces quiero saber si al usar este segundo ejemplo, podría hacer algo como:
$(document).keypress("ctrl+c",function() {
alert("Ctrl+C was pressed!!");
});
¿es posible? Lo probé y no funcionó, ¿qué estoy haciendo mal?
En mi caso, estaba buscando una tecla Ctrl Keydown y haga clic en evento. Mi jquery se ve así:
$(''.linkAccess'').click( function (event) {
if(true === event.ctrlKey) {
/* Extract the value */
var $link = $(''.linkAccess'');
var value = $link.val();
/* Verified if the link is not null */
if('''' !== value){
window.open(value);
}
}
});
Donde "linkAccess" es el nombre de la clase para algunos campos específicos donde tengo un enlace y quiero acceder usando mi combinación de teclas y clic.
Hay un complemento para Jquery llamado "Teclas de acceso directo" que le permite vincularse a combinaciones de teclas.
¿Esto hace lo que buscas?
Llego un poco tarde a la fiesta, pero esta es mi parte
$(document).on(''keydown'', function ( e ) {
// You may replace `c` with whatever key you want
if ((e.metaKey || e.ctrlKey) && ( String.fromCharCode(e.which).toLowerCase() === ''c'') ) {
console.log( "You pressed CTRL + C" );
}
});
No pude hacer que funcione con .keypress (), pero funcionó con la función .keydown () como esta:
$(document).keydown(function(e) {
if(e.key == "c" && e.ctrlKey) {
console.log(''ctrl+c was pressed'');
}
});
No puede usar Ctrl + C por jQuery, pero puede hacerlo con otra biblioteca que es shortcut.js
Demostración en vivo: Abdennour JSFiddle
$(document).ready(function() {
shortcut.add("Ctrl+C", function() {
$(''span'').html("أحسنت. لقد ضغطت على حرفي : Ctrl+C");
});
shortcut.add("Ctrl+V", function() {
$(''span'').html("أحسنت. لقد ضغطت على حرفي : Ctrl+V");
});
shortcut.add("Ctrl+X", function() {
$(''span'').html("أحسنت. لقد ضغطت على حرفي : Ctrl+X");
});
});
Otro enfoque (no se necesita ningún complemento) para usar .ctrlKey
propiedad .ctrlKey
del objeto de evento que se transfiere. Indica si se presionó Ctrl en el momento del evento, así:
$(document).keypress("c",function(e) {
if(e.ctrlKey)
alert("Ctrl+C was pressed!!");
});
Pruebe el plugin Jquery Hotkeys en su lugar: hará todo lo que necesite.
jQuery Hotkeys es un complemento que le permite agregar y eliminar fácilmente controladores para eventos de teclado en cualquier parte de su código que soporte casi cualquier combinación de teclas.
Este plugin se basa en el plugin de Tzury Bar Yochay: jQuery.hotkeys
La sintaxis es la siguiente:
$(expression).bind(types, keys, handler); $(expression).unbind(types, handler);
$(document).bind(''keydown'', ''ctrl+a'', fn);
// e.g. replace ''$'' sign with ''EUR''
// $(''input.foo'').bind(''keyup'', ''$'', function(){
// this.value = this.value.replace(''$'', ''EUR''); });
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type=''text/javascript''>
var ctrlMode = false; // if true the ctrl key is down
///this works
$(document).keydown(function(e){
if(e.ctrlKey){
ctrlMode = true;
};
});
$(document).keyup(function(e){
ctrlMode = false;
});
</script>