Reputation: 662
I am having some issues when i am trying to work with slidetoggle property in jquery. What i would like to accomplish is:
I've tried this:
$i++;
$("#items"+ $i).click(function(){
$("#items'.$i.'-submenu").slideToggle('slow', function() {
if ( $("#item'.$i.'s-submenu").is(":visible")) {
$("#items'.$i.'").css("border-right","none");
}
else
{
$("#items'.$i.'").css("border-style","solid solid solid solid");
$("#items'.$i.'").css("border-right-width","1px");
}
});
return false;
});
Later edit:
The HTML looks like:
<div class="item">Click here </div>
<div class="content">There it goes the hidden content</div>
<div class="item">Click here </div>
<div class="content">There it goes the hidden content</div>
<div class="item">Click here </div>
<div class="content">There it goes the hidden content</div>
<div class="item">Click here </div>
<div class="content">There it goes the hidden content</div>
<div class="item">Click here </div>
<div class="content">There it goes the hidden content</div>
<div class="item">Click here </div>
<div class="content">There it goes the hidden content</div>
<div class="item">Click here </div>
<div class="content">There it goes the hidden content</div>
<div class="item">Click here </div>
<div class="content">There it goes the hidden content</div>
.....................
Upvotes: 0
Views: 125
Reputation: 22580
UPDATED USING YOUR HTML
New jQuery
$(".item").click(function(e) {
$(this).next(".content").slideToggle().siblings(".content").each(function(i) {
if ($(this).is(":visible")) $(this).slideToggle();
});
});
You could just use jQueryUI accordion, however if you want to do it yourself it is not hard.
The code would be like below:
Basic HTML Layout
<div class="item">
<p class="clickable">Click Here</p>
<div class="content">
I'm open!
<br />
I'm open!
<br />
I'm open!
</div>
</div>
<hr />
<div class="item">
<p class="clickable">Click Here</p>
<div class="content">
I'm open!
<br />
I'm open!
<br />
I'm open!
</div>
</div>
<hr />
<div class="item">
<p class="clickable">Click Here</p>
<div class="content">
I'm open!
<br />
I'm open!
<br />
I'm open!
</div>
</div>
<hr />
<div class="item">
<p class="clickable">Click Here</p>
<div class="content">
I'm open!
<br />
I'm open!
<br />
I'm open!
</div>
</div>
<hr />
<div class="item">
<p class="clickable">Click Here</p>
<div class="content">
I'm open!
<br />
I'm open!
<br />
I'm open!
</div>
</div>
a lil CSS
.content { display: none; }
.clickable { cursor: pointer; }
Finally some jQuery
$(".item").click(function(e) {
$(this).siblings().each(function(i) {
if ($(this).children(".content").is(":visible")) $(this).children(".content").slideToggle();
});
$(this).children(".content").slideToggle();
});
Upvotes: 1