2012-03-29 10 views
0

Ich versuche meine Seite zu sortieren, so dass, wenn ich auf einen Ankerlink klicke, die Überschrift und die darunter liegenden Punkte hervorgehoben werden. Ich habe es fast richtig, aber ich kämpfe mit ein paar Problemen.jquery nextuntil Filterung für mehrere Klassen

Ich habe einige HTML wie:

<p id="pp1" class="Subsubhead">Stuff</p> 
<p>Nonsense</p> 
<p>More</p> 
<p id="pp7" class="Subsubhead">Meow</p> 
<p>Lorem</p> 
<p class="subhead"> 

und ich einige Javascript, das funktioniert wie fast:

function highlight(elemId) { 
    var elem = $(elemId); 

    elem.nextUntil(".Subsubhead").addClass("snaphighlight"); 

    //elem.addClass("snaphighlight"); 
    setTimeout(function() { 
     elem.removeClass("snaphighlight") 
    }, 1000); 
} 

$('#navigation a').click(function (event) { 
    var elemId = '#' + $(this).attr('href').split('#')[1]; 
    highlight(elemId); 
}); 

dieser Zeit nicht die Überschrift nicht markieren, aber es funktioniert markieren Sie die <p> Tags darunter bis zum nächsten Subsubhead. Wenn das nächste p jedoch eine Klasse von Subhead hat, markiert es weiterhin, was ich nicht will. Gibt es eine Möglichkeit, es zu NextUtil ".subsubhead"&&".subhead" oder etwas ähnliches zu sagen? Auch mein Timeout funktioniert nicht mehr. Wie kann ich das beheben?

Antwort

1

Sie sind die Klasse zahlreiche Elemente der Anwendung nur, sondern sie von einem

Entfernen Try this:

function highlight(elemId) { 
    var elem = $(elemId); 
    var highlight=elem.nextUntil(".Subsubhead").addClass("snaphighlight"); 

    //elem.addClass("snaphighlight"); 
    setTimeout(function() { 
     highlight.removeClass("snaphighlight") 
    }, 1000); 
} 

Ihre Syntax ## für einen jQuery-Selektor ungültig ist, mit nur einem #

verwenden sollten
+0

Dies funktioniert für die Zeitüberschreitung. Bei der Verwendung von Coldfusion verursacht die Verwendung eines # Probleme. das ist der einzige Grund theres zwei. CF-Entwickler verstehen. – Jarede

+0

Ich mache CF-Arbeit auch, aber das Posten einer Mischung aus Server-Code und Client-Code fügt nur Verwirrung, wenn alles, was Sie gezeigt haben, HTML und Javascript ist – charlietfl

Verwandte Themen