Events 使用mootools映射键盘键
我希望使enter键的行为与表单上的tab键完全相同 我被困在fireEvent部分Events 使用mootools映射键盘键,events,keyboard,mootools,Events,Keyboard,Mootools,我希望使enter键的行为与表单上的tab键完全相同 我被困在fireEvent部分 var inputs = $$('input, textarea'); $each(inputs,function(el,i) { el.addEvent('keypress',function(e) { if(e.key == 'enter') { e.stop(); el.fireEvent('keypress','tab'); } }
var inputs = $$('input, textarea');
$each(inputs,function(el,i) {
el.addEvent('keypress',function(e) {
if(e.key == 'enter') {
e.stop();
el.fireEvent('keypress','tab');
}
});
});
如何使用指定的键触发按键事件?任何帮助都将不胜感激。请查看
它可以为键触发单个事件,并提供方法来禁用和启用分配给键盘实例的侦听器
下面是我如何在类似情况下实现它的一个简单示例:
var myKeyEv1 = new Keyboard({
defaultEventType: 'keydown'
});
myKeyEv1.addEvents({
'shift+h': myApp.help() // <- calls a function opening a help screen
});
var myKeyEv1=新键盘({
defaultEventType:'keydown'
});
myKeyEv1.addEvents({
“shift+h”:myApp.help()/请查看
它可以为键触发单个事件,并提供方法来禁用和启用分配给键盘实例的侦听器
下面是我如何在类似情况下实现它的一个简单示例:
var myKeyEv1 = new Keyboard({
defaultEventType: 'keydown'
});
myKeyEv1.addEvents({
'shift+h': myApp.help() // <- calls a function opening a help screen
});
var myKeyEv1=新键盘({
defaultEventType:'keydown'
});
myKeyEv1.addEvents({
“shift+h”:myApp.help()/这将起作用,但它依赖于dom顺序,而不是tabindex
var inputs = $$('input,textarea');
inputs.each(function(el,i){
el.addEvent('keypress',function(e) {
if(e.key == 'enter'){
e.stop();
var next = inputs[i+1];
if (next){
next.focus();
}
else {
// inputs[0].focus(); or form.submit() etc.
}
}
});
});
另外,textarea输入capture?为什么,它是多行的…无论如何,要在键盘级别执行它,请查看Syn
上述操作将因隐藏元素(您可以过滤)和禁用元素等而失败。不过,您知道了-focus()
。不确定在input[type=radio | checkbox | range]
等上它将执行什么操作
p、 因为.firevent()
将只调用绑定的事件处理程序,而不是实际为您创建事件,所以您的代码无法工作。这可以工作,但它依赖于dom顺序,而不是tabindex
var inputs = $$('input,textarea');
inputs.each(function(el,i){
el.addEvent('keypress',function(e) {
if(e.key == 'enter'){
e.stop();
var next = inputs[i+1];
if (next){
next.focus();
}
else {
// inputs[0].focus(); or form.submit() etc.
}
}
});
});
另外,textarea输入capture?为什么,它是多行的…无论如何,要在键盘级别执行它,请查看Syn
上述操作将因隐藏元素(您可以过滤)和禁用元素等而失败。不过,您知道了-focus()
。不确定在input[type=radio | checkbox | range]
等上它将执行什么操作
p、 您的代码将无法工作,因为.firevent()
将只调用绑定的事件处理程序,而不是实际为您创建事件。到目前为止,这似乎是不可能的…我希望被证明是错误的:)到目前为止,这似乎是不可能的…我希望被证明是错误的:)谢谢,我尝试了这段代码,但这里的问题是$$()数组不一定按顺序返回元素,因为TexTaaRas在输入之后将遵循。此外,如果动态添加新的项,则需要刷新数组。然后需要考虑正确保存TabDe指标和<代码>。
-或者跨浏览器手动触发密钥事件-这不是一个小任务。我决定向特定输入和文本区域添加特定类,这导致它们以正确的顺序返回。谢谢,我尝试了此代码,但这里的问题是$$()数组不一定按顺序返回元素,因为TexTaaRas在输入之后将遵循。此外,如果动态添加新的项,则需要刷新数组。然后需要考虑正确保存TabDe指标和<代码>。
-或者跨浏览器手动触发关键事件-这不是一项小任务。我决定向特定输入和文本区域添加特定类,从而使它们以正确的顺序返回。