Alternar o elemento que for clicado
-
23-08-2019 - |
Pergunta
Estou usando a alternativa () com jQuery e tenho uma barra lateral na minha página e cada cabeçalho é
<h2 class="sidebar-header">
Uma seção do meu código será:
<div class="sidebar-section">
<h2 class="sidebar-header">SUBSCRIBE</h2>
<p class="sidebar">Make sure you subscribe to stay in touch with the latest articles and tutorials. Click on one of the images below:</p>
<div class="rss-icons">
<a href="http://fusion.google.com/add?feedurl=http://feeds.feedburner.com/ryancoughlin"><img src="http://gmodules.com/ig/images/plus_google.gif" width="62" height="17" alt="Add to Google Reader or Homepage" class="feed-image"/></a>
<a href="http://add.my.yahoo.com/rss?url=http://feeds.feedburner.com/ryancoughlin" title="Web/Graphic Design/Development by Ryan Coughlin"><img src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo3.gif" alt="Add feed to My Yahoo" width="62" height="17" class="feed-image" /></a>
<a href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http://feeds.feedburner.com/ryancoughlin" title="Web/Graphic Design/Development by Ryan Coughlin"><img src="http://www.newsgator.com/images/ngsub1.gif" alt="Subscribe in NewsGator Online" class="feed-image" height="17" /></a>
</div>
<hr />
<p class="sidebar feed">Don't have those? Grab the <a href="http://feeds.feedburner.com/ryancoughlin" target="_blank" title="Subscribe to this feed">RSS</a> url.</p>
<p class="sidebar delicious">Make sure you add me to <a href="http://del.icio.us/post?url=http://www.ryancoughlin.com&title=Ryan Coughlin - Web/Graphic Design and Development" target="_blank" title="Add to delicious!">delicious!</a> </p>
</div>
Cada um deles é embrulhado nesses elementos div. Estou tentando fazer isso se você clicar no cabeçalho, ele reduzirá o conteúdo. Eu sei que a alternativa pode fazer isso, mas se eu fizer isso para cada "cabeçalho da barra lateral", você clicará em qualquer elemento na página e ele ocultará todos eles, como posso fazer isso?
Solução
Experimente isso:NextAll
$(".sidebar-header").click(function() {
$(this).nextAll().toggle();
});
Outras dicas
Tente algo assim:
Suponha que você tenha o seguinte código:
<div class="topdiv">
<h2 class="header">Header 1</h2>
<div class="somecontent">
This is the content
</div>
</div>
<div class="topdiv">
<h2 class="header">Header 2</h2>
<div class="somecontent">
This is the content
</div>
</div>
Agora, diga que quando você deseja clicar em um cabeçalho, o conteúdo desse cabeçalho é exibido / oculto:
$(".header").click(function () {
$(this).parent(".topdiv:first").find(".somecontent").toggle();
});
Dessa forma, apenas o conteúdo do cabeçalho específico será alterado, e não o resto.
Agora você pode analisar o código que escrevi para você e aplicá -lo em seu próprio contexto.