Отключить сочетания клавиш, если ввод (ы) сфокусирован - PullRequest
1 голос
/ 13 августа 2011

У меня есть несколько входов, которые вы фокусируете их с помощью кодов клавиш.

Я пытаюсь: когда фокус на входах, отключить функцию кодов клавиш, а когда не сфокусирован, включить.

Я пробовал это:

var hotkeys_function = false;
if (!hotkeys_function ){
    $(document).keydown(function(e) { 
        if (e.keyCode == 71) { 
        $("#input1").fadeIn();
        $("#input1").focus().select();
            var hotkeys_function = true;
        }
    });

}

А это:

if ($("#input1").select()) {
    var hotkeys_function = true;
}

но, похоже, никто не работает.

Ответы [ 2 ]

2 голосов
/ 13 августа 2011

Не $("#input1").select(), а $("#input1").focus().

Фактически, переменные не нужны, вы можете просто динамически проверять и возвращать, сфокусирован ли ввод.

$(document).keydown(function(event) {
    if($("#input1").is(":focus")) return; //Will fail if already focused. 

    if (event.keyCode == 71) { //g 
        $("#input1").fadeIn();
        $("#input1").focus().select();
    }
});

Рабочий пример .

0 голосов
/ 13 августа 2011

Что вы можете сделать, это без каких-либо других переменных: http://jsfiddle.net/pimvdb/YnVPQ/.

$(document).keydown(function(e) {
    if (e.keyCode == 71) {
        if($("input").is(":focus")) return; // abort if any focused textboxes

        $("#input1").fadeIn();
        $("#input1").focus().select();
    }
});
...