【发布时间】:2023-10-01 01:24:01
【问题描述】:
我正在尝试在文本区域中创建一个撤消功能,因为我发现 IE 上的“必须在工作中使用它”的本机功能缺失。
这个想法是在用户按下空格键、退格键、删除键或右键单击鼠标的任何时候推送到数组。我遇到问题的地方是使用 Z 键浏览数组“历史”。我在想,如果每次按下 Z 键时我都会增加一个计数器,然后从 array.length 中减去它,这将允许我浏览历史记录。
这是我为测试 http://jsfiddle.net/synthet1c/5fqe3/2/ 制作的 JSFiddle
这是我遇到问题的脚本部分
//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;
}
此外,在按空格键以节省内存时仅将最后一个单词推入数组的任何想法都会很棒。
【问题讨论】:
-
IE 有一个用于 TEXTAREA 的本机“撤消”?
-
我相信Stack 会比数组更好(即你可以使用 Array.push() 和 Array.pop() ) More reading here
-
@jahroy 我不明白你为什么要使用
Stack数据结构......它所做的只是限制了数组上的方法。只是不要使用任何其他方法,它没有什么不同! -
@Ian - 很公平......我实际上并没有仔细阅读页面(我的错)。我只是想如果它是一个新概念,它将解释堆栈的概念。我的主要观点只是使用 push() 和 pop() 来维护撤消堆栈。
-
@jahroy 没问题,我认为这是一个很好的观点,我同意它们可以用来使这个程序工作,只是可以更好地解释:)
标签: javascript arrays textarea counter undo