Помогите разобрать код jQuery
Добрый день.
Есть один пример страницы на jQuery. Не могу понять и к тому же найти описание данного метода в учебниках по JS и jQuery.
Вот кусок html, который связан с кодом jQ.
<div class="panel box">
<h2>Test Subjects</h2>
<div class="test-subjects clearfix">
<div class="test-subject">bla-bla</div>
<div class="test-subject"><img src="images/limes.png" alt=""/>
</div>
<div class="test-subject">bla-bla.</div>
<div class="test-subject"><img src="images/belt.png" alt=""/>
</div>
</div>
</div>
у нас есть 4 элемента div с классом "test-subject".
в коде собираем набор этих элементов в переменной:
var $testSubjects = $('.test-subject');
далее есть обработчик нажатия на кнопку, который переменной effect присваивает одно из значении: 'show', 'hide', 'toggle'.
это строковые значения.
теперь сам не понятный кусок кода:
if ((effect === 'show' || effect === 'hide' || effect === 'toggle') && speed === 'none') {
$testSubjects[effect]();
}
мне не понятен вызов: $testSubjects[effect]();
по результату работы кода я понял, что данный вызов означает следующее:
для всех элементов из набора $testSubjects применить метод show(), если effect==='show', или метод hide(), если effect==='hide'.
не в одной документации не нашел описание данного метода вызова методов high и тд.
строку $testSubjects[effect](); заменил на ниже указанный код и получил этот же результат для show и hide. этот подход мне более понятен чем $testSubjects[effect]()
$testSubjects.each(function(){
if (effect === 'show') {
$(this).show();
} else {
if (effect === 'hide') {
$(this).hide();
}
}
});
Если кто знает и может дать ссылку на описание такой оптимизации кода вышлите пожалуйста.
Спасибо.
|