У меня есть повторяющаяся функция в моем коде, которая состоит из набора миниатюр, которые при нажатии воспроизводят уникальное видео. Видео находится в div, который переключается. HTML включен для справки:Более эффективный способ повторить функцию jQuery
HTML
<ul class="testimonialthumbs">
<li id="t1"><img></li>
<li id="t2"><img></li>
<li id="t3"><img></li>
<li id="t4"><img></li>
<li id="t5"><img></li>
</ul>
<hr>
<div class="testimonialdrop" id="v1">
<iframe></iframe>
<hr>
</div>
<div class="testimonialdrop" id="v2">
<iframe></iframe>
<hr>
</div>
<div class="testimonialdrop" id="v3">
<iframe></iframe>
<hr>
</div>
<div class="testimonialdrop" id="v4">
<iframe></iframe>
<hr>
</div>
<div class="testimonialdrop" id="v5">
<iframe></iframe>
<hr>
</div>
JS
$('#t1').click(function(){
$('#v1').slideToggle('fast');
$('#v2,#v3,#v4,#v5').hide();
});
$('#t2').click(function(){
$('#v2').slideToggle('fast');
$('#v1,#v3,#v4,#v5').hide();
});
$('#t3').click(function(){
$('#v3').slideToggle('fast');
$('#v1,#v2,#v4,#v5').hide();
});
$('#t4').click(function(){
$('#v4').slideToggle('fast');
$('#v1,#v2,#v3,#v5').hide();
});
$('#t5').click(function(){
$('#v5').slideToggle('fast');
$('#v1,#v2,#v3,#v4').hide();
});
Что является более эффективным способом, чтобы написать JS выше? Конечным результатом является то, что при нажатии #t(n)
#v(n)
будет расширяться, и все остальные #v(n)
рухнут (если они будут расширены). По умолчанию display:
на #v(n)
- none
.
Это прекрасно работает! По сравнению с ответом от @ArunPJohny, есть ли лучшая практика? Я заметил, что они похожи, так что самая большая разница - время загрузки страницы? – kylesimmonds
@KyleSimmonds: Я думаю, но несколько байтов не будут иметь большого значения. – icktoofay