2010-03-20 69 views
4

我有一个工作正常的jQuery语句。我将如何重写.livejquery live tabIndex

$(document).ready(function() 
{ 

    $(':input:enabled:visible, a:enabled:visible, span.ValidatorClass').each 
    (function(i, e) { $(e).attr('tabindex', i) }); 


    }); 

我之所以需要这个是我隐藏/显示元素有时使用.show.hide,这时我需要重置选项卡顺序出现/消失的元素。

+0

如果你只显示和隐藏的元素,你可以设置反正标签索引 - 它会被忽略的隐藏要素,所以从'$值(文件) .ready'应该是正确的。那么什么不适合你? – Kobi

+0

如果我这样做。显示新出现的元素没有设置标签索引,因为当这个页面加载时它们不可见,所以当它们在标签时跳过。 – Victor

+2

当然,因为你选择了':visible'。如果你选择了':input,a,span.ValidatorClass'? (顺便说一下,''有Tab键索引吗?) – Kobi

回答

1

就我所知,显示和隐藏元素不会引发任何事件,因此live不会帮助您。

但是,由于您不添加新元素或重新排序,因此您可以从头开始正确设置tabindex。浏览器无论如何都会忽略隐藏或禁用的元素。没有:visibleenabled过滤器运行代码:

$(':input, a, span.ValidatorClass') 
.each(function(i, e) { $(e).attr('tabindex', i) }); 
+0

感谢您的帮助 – Victor