JQuery тумблер, который лучше - PullRequest
0 голосов
/ 18 апреля 2011

Я постоянно переключаюсь между #form и #edit. Какой селектор быстрее. Лучше пойти с первым или вторым селектором.

var $form = $('#form');
var $edit = $('#edit');
$form.toggle();
$edit.toggle();

или

$('#form, #edit').toggle();

Ответы [ 4 ]

2 голосов
/ 18 апреля 2011

«Самым быстрым» решением было бы вовсе не использовать .toggle(), а .css().

$formEdit = $('#form, #edit');
if ($formEdit.css(':hidden')) {
    $formEdit.css('display', 'block');
} else {
    $formEdit.css('display', 'none');
}

Ресурс: http://www.learningjquery.com/2010/05/now-you-see-me-showhide-performance

2 голосов
/ 18 апреля 2011

Краткий ответ: Это зависит.

Собираетесь ли вы выполнить эту операцию снова в другой точке, или это одноразовая вещь?Если это одноразовая вещь, разницы почти не будет, но почти всегда использование встроенных функций происходит быстрее:

$('#form').add('#edit').toggle();

Если вы собираетесь снова ссылаться на эти же элементы, абсолютно сохранитеих в переменную, как в первом примере, или, как предложил Нил, сохраните их в одной переменной.

2 голосов
/ 18 апреля 2011

а как же:

$formEdit = $('#form, #edit');
$formEdit.toggle();
//than you can use the combo selector later as well
1 голос
/ 18 апреля 2011

Второй: $('#form, #edit').toggle(); - эффективный путь.

...