Нужна помощь для реализации нажатия клавиш CloseOnEscape для JQModal с IFrame - PullRequest
3 голосов
/ 26 февраля 2012

Я использую JqModal в своем проекте.Это хороший мод JS.Однако мне нужна помощь, чтобы прикрепить нажатие клавиши Close On Escape к JqModal.Я загружаю вечный контент с внешнего URL в JqModal.

Для простого модального режима, где не используется IFrame, очень легко реализовать функцию нажатия клавиш CloseOnEscape.

Ответы [ 3 ]

5 голосов
/ 30 марта 2012

Я сделал это, обновив файл jqModal.js

Шаги:

  1. Добавить параметр "closeOnEsc: true" в jqModal. Таким образом, опция будет выглядеть примерно так:

        var p = {
        overlay: 50,
        overlayClass: 'jqmOverlay',
        closeClass: 'jqmClose',
        trigger: '.jqModal',
        ajax: F,
        ajaxText: '',
        target: F,
        modal: F,
        toTop: F,
        onShow: F,
        onHide: F,
        onLoad: F,
        closeOnEsc: true
    };
    
  2. Добавьте следующий код в функцию открытия jqModal.

        var modal = $(h.w);
    
        modal.unbind("keydown");
    
        if (c.closeOnEsc) {
            modal.attr("tabindex", 0);
            modal.bind("keydown", function (event) {
                if (event.keyCode == 27) {
                    event.preventDefault();                        
                    modal.jqmHide();
                }
            });
            modal.focus();
        }
    
2 голосов
/ 29 марта 2012

С http://forum.jquery.com/topic/jquery-jqmodal-and-the-esc-key

document.onkeydown = function(e){
    if (e == null) { // ie
       keycode = event.keyCode;
    } else { // mozilla
       keycode = e.which;
    }
    if(keycode == 27){ // escape, close box
       $('.jqmWindow').jqmHide();
     }
};

Где '.jqmQWindow' - это окно или контейнер, к которому вы прикрепили jqModal.

0 голосов
/ 22 февраля 2014

Я обновил ответ пользователя 1233802 для последней версии jqModal (по состоянию на 21.02.2014):

http://pastebin.com/7RQG1Jj3

...