I have a list of elements like
<ol>
<li class="blah">some text <a href=#">test</a></li>
<li class="blah">some text <a href=#">test</a></li>
<li class="blah">some text <a href=#">test</a></li>
<li class="blah">some text <a href=#">test</a></li>
<li class="blah">some text <a href=#">test</a></li>
<li class="blah">some text <a href=#">test</a></li>
<li class="blah">some text <a href=#">test</a></li>
<ol>
I want to add a hover element so when the user hovers over the <li> then only that items <a> hovers.
I have this (where hover-enabled is just a color)
jQuery('ol li').hover(function () {
jQuery('ol li.blah a').addClass('hover-enabled');
}, function () {
jQuery('ol li.blah a').removeClass('hover-enabled');
});
It works but ALL of the <a> items hover - not just the individual <li>. Any ideas ?
Because that ol li.blah a
selector is true for all of the list items a
elements.
This is assuming you want the class applied to the a
element and not the li
element.
jQuery('ol li').hover(function () {
jQuery("a", this).addClass('hover-enabled');
}, function () {
jQuery("a", this).removeClass('hover-enabled');
});
If you want the li
to have the class then use:
jQuery('ol li').hover(function () {
jQuery(this).addClass('hover-enabled');
}, function () {
jQuery(this).removeClass('hover-enabled');
});
it's because in your example you are referencing all of them, you instead want to use this.
jQuery('ol li').hover(function () {
jQuery(this).addClass('hover-enabled');
}, function () {
jQuery(this).removeClass('hover-enabled');
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With