我在我的项目中使用 JqModal。它是一个不错的 JS 模态。但是,我需要一个帮助才能将 Close On Escape 按键附加到 JqModal。我正在从 JqModal 中的外部 URL 加载永恒的内容。
对于没有使用 IFrame 的简单 Modal,很容易实现 CloseOnEscape 按键功能。
我在我的项目中使用 JqModal。它是一个不错的 JS 模态。但是,我需要一个帮助才能将 Close On Escape 按键附加到 JqModal。我正在从 JqModal 中的外部 URL 加载永恒的内容。
对于没有使用 IFrame 的简单 Modal,很容易实现 CloseOnEscape 按键功能。
我通过更新 jqModal.js 文件使它工作
脚步:
将选项“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
};
将以下代码添加到 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();
}
来自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 的窗口或容器。
我更新了 user1233802 对最新版本 jqModal 的回答(截至 2014 年 2 月 21 日):