Hi Jared,
It looks like there are a few ways you can tighten up your selectors,
but the part that you're asking about could be changed from this ...
$('#ailment').find('.close').click(function() {
$('.accContent').slideUp();
$(this).prev('.accToggler').removeClass
("accTogglerClose").addClass("accToggler");
});
to this ...
$('#ailment p.close').click(function() {
$(this).parent().slideUp()
.prev().removeClass('accTogglerClose').addClass('accToggler');
});
So, you're first traversing from the clicked element to its parent
and sliding it up; then, you're traversing to the previous element --
in relation to the parent -- and swapping the classes on it.
Hope that helps.
--Karl
_________________
Karl Swedberg
www.englishrules.com
www.learningjquery.com
On May 25, 2007, at 11:24 AM, [EMAIL PROTECTED] wrote:
I'm trying to have a "close" link in a div that is expanded by click
on an h3 that is the toggler. The trick is, I need that close click to
then change the class of the h3 that preceeds it, not all h3s on the
page.
<h3 class="accToggler ">Title</h3>
<div class="accContent">
<p>Content</p>
<p class="close">Close</p>
</div>
So far my script looks like this:
<script type="text/javascript">
$(function() {
$
('#ailment').find('.accContent').hide().end().find
('.accToggler').click(function()
{
$(this).next().slideToggle();
});
$(".accToggler").toggle(function() {
$(this).removeClass("accToggler").addClass("accTogglerClose");
},function(){
$(this).removeClass("accTogglerClose").addClass("accToggler");
});
$('#ailment').find('.close').click(function() {
$('.accContent').slideUp();
$
(this).prev('.accToggler').removeClass("accTogglerClose").addClass
("accToggler");
});
});
</script>
Thanks in advance.