2014-01-23 33 views
0

我使用jQuery UI來顯示一個對話框。我已經使用div作爲背景窗口禁用了頁面背景的選擇,並帶有一些不透明性。該對話框有一個關閉按鈕,使其在關閉按鈕的同時關閉背景窗口。現在,當我按下轉義鍵時,對話框會關閉,但背景仍然顯示。我如何關閉背景以及快速鍵的點擊。jQuery onclick轉義關鍵事件

$("#open").click(function(){ 
    $(".dialog").dialog("open"); 
    $(".bg-opacity").fadeIn(); 
}); 

$("#close").click(function(){ 
    $(".dialog").dialog("close"); 
    $(".bg-opacity").fadeOut(); 
}); 

感謝

回答

0

抓住ESC鍵KeyDown和調用close點擊功能。試試這個:

$(document).keydown(function(e) { 
    if (e.keyCode == 27) { 
     $("#close").click() 
    } 
}); 

編輯:雖然它可能捕捉逃逸對整個文檔,我的例子一樣開始,這將是更好的捕捉逃逸只是對話框時,它是開放的,以避免不斷捕捉在整個文件上逃脫。

$(NAME_OF_POPUP_DIALOG).keydown(function(e) { 
    if (e.keyCode == 27) { 
     $("#close").click() 
    } 
}); 

這可能需要您的tabindex="0"屬性添加到對話框DIV,允許它具有焦點並檢測該keydown。

0

嘗試,捕捉逃逸並關閉對話框:

$(document).keydown(function(e) { 
    if (e.keyCode == 27) { 
     $(".dialog").dialog("close"); 
     $(".bg-opacity").fadeOut(); 
    } 
});