2015-08-13 46 views
0

通常,在Esc上任何對話框消失。但我們希望該功能能夠在Esc上啓動引導程序對話框,並在下一個Esc上關閉它。 所以這是我的代碼:在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鍵慢慢正常工作。但有時如果用戶多次快速按下鍵,則對話框會永久消失。控制到達第4行。即

$(dialogid).modal({'show':true, 'keyboard':false});   

但是該行不會啓動彈出窗口。

  • 可能是什麼原因?
  • 我該如何解決這個問題。

回答

2

只是刪除 {'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'); 
     } 
    } 
}); 

DEMO


UPDATE

使用setTimeout在不同的線程

DEMO

$(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); 
     } 
    } 
}); 
+0

不,不工作運行。同樣的情況。在您的演示中檢查:( – Laxmikant

+0

什麼是不工作?:o您如何檢查我的DEMO? –

+0

嘗試多次按Esc鍵不停止(每秒3-4次)Esc對話框將永久消失。 – Laxmikant