1

我有一些向导选项卡,每个选项卡都包含表单元素。我想专注于每个选项卡的第一个表单元素。我如何只关注可见元素。EG:当我导航到下一个选项卡表单时,我不希望我的第一个隐藏选项卡被聚焦。

http://jsfiddle.net/infatti/kdWT8/

这似乎不起作用?

$('.focus:first:not(:hidden)').focus();
4

2 回答 2

3

你反过来做:

$('.focus:not(:hidden):first').focus();

现在你得到了 class 的第一个元素.focus,它当然是隐藏的,然后你只过滤可见元素,这让你什么都没有?
您需要获取可见元素,然后获取第一个。

小提琴

于 2013-09-23T19:23:07.190 回答
0

Here's another way of doing it:

$(document).find('.focus').filter(':visible').eq(0).focus();

With the Fiddle

I think chaining is more readable than sizzle selectors; here it reads "find all the elements with class focus, filter only the ones that are visible, take the first one and give it focus"

于 2013-09-23T19:35:59.993 回答