Ускорение: видимый: входной селектор избегает фильтра - PullRequest
0 голосов
/ 19 марта 2010

У меня слишком медленно работает селектор jQuery на моей, к сожалению, большой странице:

$("#section").find(":visible:input").filter(":first").focus();

Есть ли более быстрый способ выбрать первый видимый вход без необходимости искать ВСЕ видимые входы, а затем фильтровать выбор ТО для первого? Я хочу что-то вроде :visible:input:first, но, похоже, это не работает.

[Изменить] Вот основная идея того, как выглядит #section:

<div id="section">
    <div>
        Some text <input type="text">
    </div>
    <div>
        etc. etc. <input type="text">
    </div>
</div>

Ответы [ 2 ]

2 голосов
/ 19 марта 2010
$(":input:visible:first", "#section").focus();

Если вы сначала фильтруете тип управления, вы избегаете проверки :visible на всех элементах #section.

Похоже, вам нужно только поймать первое input type="text" видимое.
Это должно быть немного быстрее.

$("input[type='text']:visible:first", "#section").focus();
0 голосов
/ 20 марта 2010

Как насчет добавления class="default_field" в поле по умолчанию для каждой страницы с последующим использованием $('.default_field').focus();?

Как легко это сделать, конечно, зависит от вашей серверной технологии, но преимущества в том, что она снимает с клиента нагрузку на обработку (что особенно важно для IE6), а также дает вам гибкость выберите ввод по умолчанию, отличный от самого первого, на страницах, где это уместно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...