2015-12-12 41 views
3

我在學習面向對象的javascript。由於我對印刷術充滿熱情,我製作了一個OO js簡單的HTML類型編輯器,可以聽取按下按鍵的「持續時間」,以修改每個字母的重量並使用特定的字體變化。Javascript .which .fromCharCode字母等同於特殊字符的字符

到目前爲止,我有一個工作版本,您可以在codepen上直接看到:http://codepen.io/Pggo/pen/vLNKve只需在不同的持續時間在鍵盤上鍵入幾個字母,即可敲擊按鍵進行測試!

一個代碼示例:我的js文件(見codepen完整的代碼):

// ... 
    // get duration of the key pressed event 
    var duration = (e.timeStamp - pressed[e.which])/1000; 

    // use .fromCharcode to get the alphabetical equivalent of the .which notation 
    var letter = String.fromCharCode(e.which); 

    // convert letter to lowercase (comes in uppercase) 
    var lowerCaseLetter = letter.toLowerCase(); 
    // ... 

我試圖實現以下目標:

  • 顯示特殊字符如括號或標點符號。
  • 自動返回到下一行,當我的班級的長度> n。

問題:

有沒有什麼辦法讓使用所有keybord「正常」的行爲更容易的任務嗎? (我首先嚐試了textarea可發佈的HTML標籤,但用js來獲取這個人的事件並不容易)。

每個輸入讚賞

回答

2

jQuery是在這種情況下非常奇怪:.keyup().keydown()都將讓你的JavaScript鍵碼,而不是ASCII鍵碼像String.fromCharCode()希望。但是,.keypress()會給你正確的價值。考慮到這一點,你可以對你的應用進行一些細微的改變,它應該按照預期工作:http://codepen.io/anon/pen/eJpzam

儘管您可能想要一次處理多個字符,因爲此解決方案一次只能處理一個字符。

+0

非常感謝您的時間並回答John。我正在玩你的代碼,正如你所說,jQuery似乎完全適合這項任務。再次感謝您的意見! – gastngouron