在Magnific Popup中将enter键指定为关闭按钮

时间:2015-11-17 13:03:49

标签: javascript jquery magnific-popup

我有一个功能正常的弹出窗体,我使用Magnific Popup Lightbox。在里面我有一个自定义关闭按钮,可以在单击时处理收集的信息。我希望用户能够按下回车键(在任何时候,不仅仅是在最终文本框之后)并激活关闭按钮。我的代码如下:

$.magnificPopup.open({
    items: {
       src: 'nameselect.html',
       type: 'ajax'
    },
    closeOnContentClick : false, 
    closeOnBgClick :true,
    showCloseBtn: false,
    enableEscapeKey : false,
    callbacks: {
        open: function(){
            $.magnificPopup.instance.wrap[0].addEventListener('focus', function (e) {kNameSearch(e,focusText)});
            $(document).keypress(function(e){
                if (e.which == 13){
                    $("#cbutton").click();
                }
            });
        },
        afterClose: function(){
            document.getElementById("SearchName").blur();
        }
    }
});

但是$(document).keypress(function(){})行似乎不起作用。我也尝试在上面的监听器调用的函数中插入代码,但没有成功。任何建议都非常受欢迎。

1 个答案:

答案 0 :(得分:0)

解决方案是直接调用按钮功能,而不是尝试点击"按钮。所以这个:

$(document).keypress(function(e){
   if (e.which == 13){
      $("#cbutton").click();
   }
});

改为:

$(document).keypress(function(e){
   if (e.which == 13){
      closeButton();
   }
});

鉴于该按钮在HTML中标识为:

<input id="cbutton" onclick="closeButton()" type="button" value="Close" />