tabindex按顺序进行,如果在中心遗漏了什么,则转到tabindex 1
tabindex goes in order if something missed in center then it goes to tabindex 1
im的tabindex从tabindex="1"到tabindex="20",这些都是动态生成的。有些时候tabindex="16"不会生成,而从"15"点击会变成"1",但我希望它变成"17",我该如何实现?
<script>
$(document).on("keypress", ".TabOnEnter" , function(e)
{
//Only do something when the user presses enter
if( e.keyCode == 13 )
{
var nextElement = $('[tabindex="' + (this.tabIndex+1) + '"]');
console.log( this , nextElement );
if(nextElement.length )
nextElement.focus()
else
$('[tabindex="1"]').focus();
}
});
</script>
<script>
$(document).on("keypress", ".TabOnEnter" , function(e)
{
//Only do something when the user presses enter
if( e.keyCode == 13 )
{
var nextIndex = this.tabIndex + 1;
var nextElement = $('[tabindex="' + nextIndex + '"]');
console.log( this , nextElement );
while(!nextElement.length){
nextIndex++;
if(nextIndex>20){
break;
}else{
nextElement = $('[tabindex="' + nextIndex + '"]');
}
}
nextElement.focus();
}
});
</script>
以下内容将以任何tabindex顺序处理任何数量的输入,并处理任何丢失的tabindex
es(包括tabindex=1)。
如果您在最后一个tabindex上,那么接下来将关注具有最低tabindex的输入。
$(document).on('keypress', '.TabOnEnter' , function(e) {
if(e.which===13) {
var tabs= $('[tabindex]'),
firstElement= tabs[0],
nextElement,
self= this;
tabs.each(function() {
if(this.tabIndex > self.tabIndex &&
(!nextElement || this.tabIndex < nextElement.tabIndex)
) {
nextElement= this;
}
if(this.tabIndex < firstElement.tabIndex) {
firstElement= this;
}
});
(nextElement || firstElement).focus();
}
});
请注意,建议使用event.which
而不是event.keyCode
。
工作Fiddle
根据Mozilla:
"避免使用大于1的tabindex值。这样做将使依赖辅助技术的人难以导航和操作页面内容。"
只需将需要键盘聚焦的元素的tabindex设置为0,并以对内容有逻辑意义的方式对HTML元素进行排序。
相关文章:
- 这是什么 ==- javascript 运算符
- 我的单元测试选项是什么
- 全局变量和全局对象的属性之间有什么区别吗
- 打破承诺链的好方法是什么
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Javascript中的空白是什么
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 在ember/handlers中使用value和valueBinding有什么区别
- 什么'在webpack外部设置中,reactDom和reactDom不同
- 在JavaScript中拆分日期字符串的更好方法是什么
- 为什么$.brower被弃用?还有什么更好的替代方案
- 什么是&&在没有if的行中的变量之间
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- DOM元素和angular元素之间的主要区别是什么
- javascript导入的最佳实践是什么
- 这两个关于 JavaScript 作用域链的例子有什么区别?
- 什么's本地node.js服务器和python简单http服务器之间的区别
- 基于窗口宽度jquery的函数的替代方法是什么
- tabindex按顺序进行,如果在中心遗漏了什么,则转到tabindex 1