在JavaScript网格中实现键盘控制
我完成了JavaScript网格控件的构建,一切正常。分页、按钮导航、列排序等 网格中的单元格是使用Mootools 1.2.4生成的div(在整个控件中大量使用) 我想为网格实现键盘控制,既可以用于分页(向上翻页/向下翻页),也可以使用箭头键在网格的行/单元格内移动。 我认为我必须在网格的每个单元格上附加一个事件处理程序,并检测正在按下的键,以便采取适当的操作。但是,我不能把焦点放在细胞上在JavaScript网格中实现键盘控制,javascript,keyboard,mootools,Javascript,Keyboard,Mootools,我完成了JavaScript网格控件的构建,一切正常。分页、按钮导航、列排序等 网格中的单元格是使用Mootools 1.2.4生成的div(在整个控件中大量使用) 我想为网格实现键盘控制,既可以用于分页(向上翻页/向下翻页),也可以使用箭头键在网格的行/单元格内移动。 我认为我必须在网格的每个单元格上附加一个事件处理程序,并检测正在按下的键,以便采取适当的操作。但是,我不能把焦点放在细胞上 我错过了什么?我该怎么做?非常感谢您的帮助。您可以通过在非表单元素中添加tabindex来进行一项可能的
我错过了什么?我该怎么做?非常感谢您的帮助。您可以通过在非表单元素中添加tabindex来进行一项可能的攻击,它将允许您形成焦点、模糊和侦听器等事件 下面是一个例子: 不知道它有多跨浏览器
$$("div").each(function(el, i) {
el.set("tabindex", i).addEvents({
focus: function() {
this.addClass("focused");
},
blur: function() {
this.removeClass("focused");
},
keydown: function() {
this.addClass("editing");
console.log("down");
},
keyup: function() {
this.removeClass("editing");
}
});
});
$$("div").getRandom().focus();
当你说“我不能把焦点放在细胞上”时,你是说你不知道怎么做,还是说你试过,但有问题。如果是后者,请包含一些代码来演示该问题。@MisterMister:document.id('cell_1_1')。focus()不起任何作用。如果我将一个“keydown”事件附加到id为“cell_1_1”的div,它不会触发。我现在明白了。添加tabindex就是解决方案。我想我能做到。非常感谢。非常感谢。