想象一下,HTML表單和jQuery庫已加載。我喜歡這樣,如果某人目前沒有專注於表單域,並且他們單擊了Esc鍵,則會彈出一個對話框詢問他們是否要關閉表單窗口(因爲表單窗口作爲新選項卡打開) 。使用jQuery在文檔上捕獲Esc鍵,但不是內容
如果我試圖在$(文檔)上捕獲它,我遇到的麻煩是事件冒泡的地方,因爲字段選擇這個,所以按Esc鍵在字段中導致事件觸發。
如何有效地(關鍵詞)防止事件的氣泡和捕獲時按下Esc時沒有領域有焦點?
想象一下,HTML表單和jQuery庫已加載。我喜歡這樣,如果某人目前沒有專注於表單域,並且他們單擊了Esc鍵,則會彈出一個對話框詢問他們是否要關閉表單窗口(因爲表單窗口作爲新選項卡打開) 。使用jQuery在文檔上捕獲Esc鍵,但不是內容
如果我試圖在$(文檔)上捕獲它,我遇到的麻煩是事件冒泡的地方,因爲字段選擇這個,所以按Esc鍵在字段中導致事件觸發。
如何有效地(關鍵詞)防止事件的氣泡和捕獲時按下Esc時沒有領域有焦點?
試試這個:
var cancelClose=false; // This is a global variable
$(document).ready(function(){
$('input, textarea,select').each(
function(){
$(this).focus(
function(){
cancelClose=true;
}
);
$(this).blur(
function(){
cancelClose=false;
}
);
}
);
});
,然後在文件鍵按下事件
說:
if (cancelClose)
return false;
您不需要明確指定每個輸入。這可能會導致問題。你可以使用$(輸入)。 – Alex 2012-01-09 09:53:53
@AlexThomas thanx,我對我編輯它:) 我加了「選擇」也 – 2012-01-09 09:59:39
這是適用於所有的瀏覽器?說IE6或7? – 2012-01-09 10:03:23
是的,我在IE6和7測試它,工作的一種享受。 – Alex 2012-01-09 10:33:59