我已经使用keydown事件来关闭窗口并使其工作正常。但是,当任何模态打开时,按下Esc键,模态和窗口都会关闭。
所以我想要的是:
OR ELSE
直到现在我已经尝试过了..
$(document).keydown(function (e) {
if ($('#new_party_modal, #edit_party_modal, #delete_party_modal').hasClass('in') != true) {
switch (e.which) {
/* Esc Key */
case 27:
history.back();
break;
}
}
});
答案 0 :(得分:0)
$(document).keydown(function(e){
if($('#new_party_modal, #edit_party_modal, #delete_party_modal').hasClass('in') != true){
switch(e.which){
/* Esc Key */
case 27:
if(!$('#myModal').hasClass('in')) {
history.back();
}
break;
}
}
});
如果您的文件中有多个模态,则循环通过模态类并检查hasClass('in') - 如果任何模态包含'in'类,则不要触发history.back();
答案 1 :(得分:0)
如果你没有这个课程"在"在你的html / js中,然后像下面一样动态添加它。
$('#new_party_modal,#edit_party_modal,delete_party_modal').addClass("in");
然后验证
if($('#new_party_modal,#edit_party_modal,delete_party_modal').hasClass('in'))
不需要检查" true"或"假"明确。
然后在显示相应的模态后删除此类。
$('#new_party_modal,#edit_party_modal,delete_party_modal').removeClass("in");
希望,上面应该有用。
答案 2 :(得分:0)
是的,我终于找到了解决问题的方法。我所做的就是:
禁用包含Esc键事件的键盘的默认模态选项
<div class="modal" id="myModal" tabindex="-1" data-backdrop="false" data-keyboard="false" role="dialog">
这里有两个模态选项,即。 数据背景和数据键盘我已转为false。将false转换为数据键盘将禁用模式隐藏的默认Esc键事件。
`
$(document).keydown(function(e){
if(e.which == 27){
if($('#myModal').is(':visible')){
//alert("Modal opened");
$('#myModal').modal("hide");
}
else{
//alert("Modal not opened");
history.back();
}
}
});
此处如果模态已打开,则(&#39;:可见&#39;)将返回true,如果未打开则返回false。然后添加代码。
答案 3 :(得分:0)
history.back();应该在关闭模型后触发。按下Esc键关闭模型。
编写一个单独的函数,在模型的close事件中调用,在函数内部写“history.back();”
例如,如果它是一个bootstrap模型“hidden.bs.modal”事件可以像
一样使用 $('#modal').on('hidden.bs.modal', function () {
windowClose();
});
function windowClose(){
history.back();
}