Jquery: нажатие клавиш и фокус на скрытом DIV - PullRequest
1 голос
/ 26 февраля 2012

Код:

$(document).ready(function(){
$(".div").hide();
$(document).on('keypress paste', function() {
    $('form').focus();
    $(".div").show("fast");
});
});

Thanks to adeneo for the cleaner code.

Описание использования:

Элемент div содержит скрытую форму поиска.При нажатии клавиши или использовании функции вставки (ctrl + v) на странице появляется окно поиска с данными внутри.

Проблема:

первое нажатие клавиши работает, но первая буква, которая используется в качестве нажатия клавиши для отображения div, теряется в переводе.Таким образом, «hello» становится «ello» в окне поиска.

Второе также работает, если вы дважды нажмете Ctrl + v.Как и выше, он использует первый экземпляр для вызова div (я полагаю?).

Help:

Ищите какой-либо способ исправить этот код так,он работает как объяснено или указывает в правильном направлении, какой код я должен использовать, если текущий код не будет работать.

1 Ответ

0 голосов
/ 27 февраля 2012

Это должно работать для проблемы нажатия клавиш.

$(document).ready(function(){
$(".div").hide();                     
$(document).keypress(function (e) {
    if($('.div').is(':hidden')){
        $(".div").show("fast");
        $("#query").val($("#query").val()+String.fromCharCode(e.charCode));
        document.forms['form'].elements['query'].focus();
    }
});

$(document).bind('paste', function(e){
    console.log(e);
    document.forms['form'].elements['query'].focus();
    $(".div").show("fast");

});
});

http://jsfiddle.net/Jkcj6/2/

...