Событие на нажатие клавиш - PullRequest
       16

Событие на нажатие клавиш

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

Эта функция возвращает к просмотру миниатюр при нажатии на увеличенное изображение ....

$('#wrapper > img').live('click',function(){
    $this = $(this);
    $('#description').empty().hide();

    $('#thumbsWrapper').css('z-index','10')
    .stop()
    .animate({'height':'100%'},speed,function(){
        var $theWrapper = $(this);
        $('#panel').css('height','0px');
        $theWrapper.css('z-index','0');
        /* 
        remove the large image element
        and the navigation buttons
         */
        $this.remove();
        $('#prev').hide();
        $('#next').hide();
    });
});

... помимо щелчка, я хочу, чтобы она также закрывалась при нажатии клавиши или просто «Esc», если возможно?

Большое спасибо

Ответы [ 2 ]

4 голосов
/ 13 августа 2010

Я бы связал событие keyup с document при загрузке страницы, которая проверяет, была ли нажата ESC.

Попробуйте: http://jsfiddle.net/AXMGM/

$(document).keyup(function( event ) {
    if(event.which === 27) {
        // Run your code to hide the element
        //   and perhaps first check to see if it needs to be done.
    }
});

jQuery нормализует event.which так, что его можно использовать вместо charCode и keyCode.

Из документов -

event.which нормализует event.keyCode и event.charCode.Рекомендуется наблюдать за событием, которое для ввода с клавиатуры ...

3 голосов
/ 13 августа 2010

Если вы хотите связать escape, вы можете проверить нажатие / нажатие клавиши, если клавиша является escape, и если это так, используйте ее, в противном случае ничего не делайте с ней.

$('#wrapper > img').live('keydown keypress', function(e) {
    if (e.keyCode == 27)  {// Check if the keycode is 27, ie ESCAPE
        do your thing here
    }
...