我在项目中使用JqModal。它是一个不错的JS模式。但是我需要一个帮助才能将关闭On Escape键按下到JqModal。我正在JqModal中从外部URL加载永久内容。
对于没有使用IFrame的简单模态,它很容易实现CloseOnEscape按键功能。
答案 0 :(得分:5)
我通过更新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();
}
答案 1 :(得分: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附加到的窗口或容器。
答案 2 :(得分:0)
我更新了user1233802的最新版jqModal的答案(截至2014年2月21日):