check if <ul> <li> has an active link?
i have
<ul>
<li class="section-title">HEADER which triggers dropdown</li>
<li><开发者_高级运维;a href="element_one">element one</a></li>
<li><a href="element_one">element one</a></li>
<li><a href="element_one">element one</a></li>
</ul>
i'm hiding all li-elements (except the first one) with this line:
$('#menu ul li.section-title:first-child').parent().children('li').hide();
i wonder if it's possible to query if one of those three links is active and if so nothing should hide!
is that even possible? thank you for your help!
- Your code will actually hide all
li
elements (including the first one).
Use$('#menu ul li:not(:first-child)').hide();
to hide all but the first one.. For the next part (to only hide them if none is the current one) use
var loc = window.location.href; var anyActive = false; $('#menu li a').each(function(){ anyActive = anyActive || (this.href == loc); }); if (!anyActive) $('#menu ul li:not(:first-child)').hide();
Update with working code, after comment
var loc = window.location.href;
$('#menu li a').each(function(){
if (this.href == loc)
$(this).addClass('activelink');
});
$('#menu ul:not(:has(.activelink)) li:not(:first-child)').hide();
live example: http://jsfiddle.net/gaby/SMmtS/21/
Why not attach a class to the active link, then you could do something like:
$(document).ready(function() { $(".myClass").doSomething();});
精彩评论