Domanda

Ho un'app Web C#.NET MVC3 e voglio intrappolare l'evento Key Up sul documento. Vale a dire, voglio sapere se Usre ha selezionato "CTL-> Z" per annullare le modifiche ai dati sulla vista Web. Come potrei farlo?

È stato utile?

Soluzione

Penso che questo sia quello che stai cercando:

var ctrlDown = false;
$(document).keydown(function (e) {
    if (e.which == 17)
        ctrlDown = true;
    if (e.which == 90)
        if (ctrlDown)
            console.log("control Z"); 
});
$(document).keyup(function (e) {
    if (e.which == 17)
        ctrlDown = false;
});

MODIFICARE

Non sono sicuro che E.Ctrlkey dalla risposta di Mesiesta sia supportato tra cross-browser, ma se lo è, potresti fare più semplicemente:

$(document).keydown(function (e) {
    if (e.which == 90 && e.ctrlKey)
        console.log("control Z");
});

Altri suggerimenti

Puoi provare a usarlo Ctrl + Key Combination – Simple Jquery Plugin . Non ho mai provato a usarlo, ma sembra una buona soluzione per questo))

Ecco il link

http://www.gmarwaha.com/blog/2009/06/16/ctrl-key-combination-simple-jquery-plugin/

Quindi ecco quel codice funzione

$.ctrl = function(key, callback, args) {
$(document).keydown(function(e) {
    if(!args) args=[]; // IE barks when args is null
    if(e.keyCode == key.charCodeAt(0) && e.ctrlKey) {
        callback.apply(this, args);
        return false;
    }
});
};

E poi nel tuo codice devi solo scrivere

$.ctrl('Z', function() {
    //What you want to do
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top