У меня есть 4 деления с содержанием, как показано ниже:
<div class="prodNav-Info-Panel">content</div>
<div class="prodNav-Usage-Panel">content</div>
<div class="prodNav-Guarantee-Panel">content</div>
<div class="prodNav-FAQ-Panel">content</div>
И такой список навигации:
<div id="nav">
<ul id="navigation">
<li><a class="prodNav-Info" ></a></li>
<li><a class="prodNav-Usage" ></a></li>
<li><a class="prodNav-Guarantee"></a></li>
<li><a class="prodNav-FAQ" ></a></li>
</ul>
</div>
Когда страница отображается в первый раз, я показываю все содержимое, выполнив это:
$('div.prodNav-Usage-Panel').fadeIn('slow');
$('div.prodNav-Guarantee-Panel').fadeIn('slow');
$('div.prodNav-FAQ-Panel').fadeIn('slow');
$('div.prodNav-Info-Panel').fadeIn('slow');
Теперь, когда вы щелкаете элемент списка навигации, он показывает содержимое, по которому щелкнули, и скрывает остальные, например:
$('.prodNav-Info').click( function() {
$('div.prodNav-Info-Panel').fadeIn('slow');
$('div.prodNav-Usage-Panel').fadeOut('slow');
$('div.prodNav-Guarantee-Panel').fadeOut('slow');
$('div.prodNav-FAQ-Panel').fadeOut('slow');
});
Итак, у меня есть 4 отдельные функции, потому что я не знаю, какой контент отображается в данный момент. Я знаю, что это неэффективно и может быть сделано с помощью нескольких строк кода. Похоже, что есть способ сказать: когда это щелкнуть, спрячьте остальные.
Могу ли я сделать это с чем-то вроде $ (this) и $ (not this)?
Спасибо,
Erik