场景:
点击一个button,触发一个弹窗,弹窗时确认和取消。
如果启动body的keydown来判断是enter键就模拟点击了确认键,esc键就模拟点击了取消关闭弹窗。
但是带来的问题,关闭了弹窗后,页面不做任何操作,再次按enter键,还会触发button点击弹出了弹窗。
这个问题就是因为页面点击的那个button点击后,弹出弹窗,用键盘关闭的弹窗时,页面的button并没有取消焦点,这样会造成再次按enter键就是在点击了button,打开弹窗了。
![b73304f1d2d4e4dbb86afdb8bb40c738.png](https://i-blog.csdnimg.cn/blog_migrate/6f53ee5cd7b8ceef6fb0637e175d8b5f.jpeg)
function keydown_layerui(){//layer弹窗注册监听键盘确定、取消按键事件;所有layer.confirm处调用,关闭弹窗的时候需要注销监听事件
$("body").keydown(function(e) {
if (e.keyCode == 13) {
$(".layui-layer-btn0").click();
}else if(e.keyCode == 27){
$(".layui-layer-btn1").click();
}
});
}
![5864d8a20a1134e9fcf714de8946c5b7.png](https://i-blog.csdnimg.cn/blog_migrate/e0e6527931f57e20fec6bfd4ebff9bae.jpeg)