2012-12-14 15 views
0

我試圖讓一個撤銷功能在一個textarea因爲我發現在IE瀏覽器的原生一個「在工作中使用它」有所欠缺。的javascript:創建一個數組撤消 - 做太困難導航陣列

想法是在用戶按下空格,退格鍵,刪除或者右鍵單擊鼠標時推送到數組。我遇到麻煩的是用Z鍵導航數組「歷史」。我在想,如果我每次按下Z鍵,然後減去array.lenght中的數字,就可以讓我在歷史中移動。

這裏是一個的jsfiddle我測試http://jsfiddle.net/synthet1c/5fqe3/2/

此處所作我有問題的腳本與

//keypress listener script 

var pos = undo.length - 1 

if(key_code == "90"){ 
var counter = 0 
counter++; 
var newCount = pos - counter; 
e.preventDefault(); 
id("myTextarea").value = undo[newCount] + " "; 
id('counter').innerHTML = counter; 

部分}

而且只推剛剛過去的任何想法當按空格鍵保存在內存中時,將單詞放入數組中會很棒。

問候,

安德魯

+0

IE提到的那些擁有原生「撤銷「TEXTAREAs? –

+0

撤消是一個數組 –

+1

我相信[Stack](http://www.i-programmer.info/programming/javascript/1674-javascript-data-structures-stacks-queues-and-deques.html)會更好(比如你可以使用_Array.push()_和_Array.pop()_)[更多閱讀](http://www.i-programmer.info/programming/javascript/1674-javascript-data-結構 - 棧,隊列和-deques.html) – jahroy

回答

1

好每一個按鍵你的計數器復位到0 var counter = 0,如果你想使計數器應聲明你的var counter = 0;出來的按鍵事件。同時計數器加一的操作後,

http://jsfiddle.net/roine/5fqe3/4/

+0

感謝您的回覆,我知道這將是基本的東西..儘管我確實嘗試過在全局設置計數器,然後在按鍵功能的外部使用閉包。但是我一定是做錯了,所以必須回頭學習基本知識。再次感謝 – synthet1c