2012-02-26 31 views
3

我在我的项目中使用了JqModal。它是一个不错的JS模式。不过,我需要一个帮助,将一个Close On Escape键按到JqModal上。我在JqModal中从外部URL加载永久内容。需要帮助实现CloseOnEscape Key按下带IFrame的JQModal

对于没有使用IFrame的简单模态,它非常容易实现CloseOnEscape按键功能。

回答

5

我把它通过更新jqModal.js文件

步骤工作:

  1. 添加选项 “closeOnEsc:真” 的jqModal。因此,选项将是这个样子,下面的代码到jqModal open函数

    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. 添加。

    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

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

我把它通过更新jqModal代码工作。 – user1233802 2012-03-30 09:21:59