在 Esc 上,切换 bootstrap 对话框
On Esc, toggle bootstrap dialog
通常,在 Esc
上,任何对话框都会消失。但是我们希望该功能在 Esc
上启动 bootstrap 对话框并在下一个 Esc
上关闭它。
所以这是我的代码:
1.$(document).on("keyup", function(e){
2. if(e.which == 27 && id == "#esc"){
3. if(!$(dialogid).is(":visible")){
4. $(dialogid).modal({'show':true, 'keyboard':false});
5. }else{
6. $(dialogid).modal('hide');
7. }
8. }
9.});
在我慢慢按下 Esc
键之前它工作正常。但有时如果用户多次快速按 Esc
键,则对话框会永久消失。控件到达第 4 行。即
$(dialogid).modal({'show':true, 'keyboard':false});
但是此行不会启动弹出窗口。
- 可能是什么原因?
- 我该如何解决。
只需删除
{'show':true, 'keyboard':false}
并且只保留
$(dialogid).modal('show')
例如:
$(document).on("keyup", function(e){
if(e.which == 27){
if(!$('#myModal').is(":visible")){
$('#myModal').modal('show');
}else{
$('#myModal').modal('hide');
}
}
});
更新
在不同线程中使用setTimeout
到运行
$(document).on("keyup", function(e){
if(e.which == 27){
if(!$('#myModal').is(":visible")){
setTimeout(function(){
$('#myModal').modal('show');
},100);
}else{
setTimeout(function(){
$('#myModal').modal('hide');
},100);
}
}
});
通常,在 Esc
上,任何对话框都会消失。但是我们希望该功能在 Esc
上启动 bootstrap 对话框并在下一个 Esc
上关闭它。
所以这是我的代码:
1.$(document).on("keyup", function(e){
2. if(e.which == 27 && id == "#esc"){
3. if(!$(dialogid).is(":visible")){
4. $(dialogid).modal({'show':true, 'keyboard':false});
5. }else{
6. $(dialogid).modal('hide');
7. }
8. }
9.});
在我慢慢按下 Esc
键之前它工作正常。但有时如果用户多次快速按 Esc
键,则对话框会永久消失。控件到达第 4 行。即
$(dialogid).modal({'show':true, 'keyboard':false});
但是此行不会启动弹出窗口。
- 可能是什么原因?
- 我该如何解决。
只需删除
{'show':true, 'keyboard':false}
并且只保留
$(dialogid).modal('show')
例如:
$(document).on("keyup", function(e){
if(e.which == 27){
if(!$('#myModal').is(":visible")){
$('#myModal').modal('show');
}else{
$('#myModal').modal('hide');
}
}
});
更新
在不同线程中使用setTimeout
到运行
$(document).on("keyup", function(e){
if(e.which == 27){
if(!$('#myModal').is(":visible")){
setTimeout(function(){
$('#myModal').modal('show');
},100);
}else{
setTimeout(function(){
$('#myModal').modal('hide');
},100);
}
}
});