3

我在我的项目中使用 JqModal。它是一个不错的 JS 模态。但是,我需要一个帮助才能将 Close On Escape 按键附加到 JqModal。我正在从 JqModal 中的外部 URL 加载永恒的内容。

对于没有使用 IFrame 的简单 Modal,很容易实现 CloseOnEscape 按键功能。

4

3 回答 3

5

我通过更新 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();
        }
    
于 2012-03-30T09:25:59.760 回答
2

来自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 的窗口或容器。

于 2012-03-29T04:33:54.577 回答
0

我更新了 user1233802 对最新版本 jqModal 的回答(截至 2014 年 2 月 21 日):

http://pastebin.com/7RQG1Jj3

于 2014-02-21T22:26:27.920 回答