我有两个以嵌套方式打开的模式。 ESCAPE键盘仅在第二个对话框关闭时起作用。除非我再次单击该对话框以重新获得焦点,否则第一个对话框不会通过键盘关闭。我试图将模式的焦点恢复到第一个对话框。因此,用户可以连续执行[ESCAPE]-[ESCAPE]键以关闭两个对话框。两者都有tabindex =“-1”。
在主js文件中调用了第一个对话框。
$('#firstDialog').modal({
cache: false,
backdrop: 'static'
}, 'show');
在第一个对话框的按钮事件内调用了第二个对话框
$('#secondDialog').modal({
cache: false,
backdrop: 'static'
}, 'show');
我尝试了以下操作,以在关闭第二个对话框时手动设置activeElement。它似乎不起作用。
$('#secondDialog').on('hidden.bs.modal', function(){
document.activeElement = $('#firstDialog')[0];
});
我在以下关于设置activeElement的主题中提到了解决方案。有什么想法需要引导哪些对象才能自动逃脱? https://github.com/twbs/bootstrap/issues/4854
答案 0 :(得分:0)
在提出问题后找出答案分钟。无论如何,如果其他人有比这更好的解决方案,请给我一个建议。我的想法是默认情况下应该可以使用。
$('#secondDialog').on('hidden.bs.modal', function(){
$('#firstDialog').focus();
});