2011-11-23 61 views
0

我創建了一個wysiwyg HTML編輯器。當用戶按住Ctrl鍵的同時,它將變量ctrlPressed設置爲true。當使用Ctrl鍵代碼觸發按鍵事件時,ctrlPressed設置爲false。在Ctrl上註冊按鍵用於更改JQuery中的標籤

但是,當用戶按Ctrl + PgUp更改選項卡時,ctrlPressed無法再次設置爲false,因爲當它們釋放控制鍵時,會觸發新選項卡中的鍵控事件,因此當用戶返回到我的網站上的原始選項卡,我的網站仍然認爲按下了Ctrl。這意味着當他們嘗試輸入i時,它將文本設置爲斜體,當用戶按下「s」時,內容會保存,直到他們再次按下並釋放Ctrl。

有沒有解決這個問題的方法?

謝謝!

回答

1

爲了將ctrlPressed變量設置爲false,每當用戶離開該網站,你可以在blur()事件附加到這樣的$(窗口)元素:

$(window).blur(function(){ 
    ctrlPressed = false; 
}); 
0

設置ctrlPressed爲false,只要你檢測到一個新的標籤加載?

+0

我想你的意思是當另一個選項卡選擇?但是,如何做到這一點。我一直在尋找這件事,但出於某種原因,我發現所有的jQuery UI標籤切換。 –

+0

你需要進一步瞭解你有什麼。標籤是如何創建的?你使用了哪些插件?你有可以展示的示例代碼嗎? –

+1

也許將'blur'事件附加到'$(window)'?像'$(window).blur(function(){ctrlPressed = false});' – scumah