here is my html ( all li and span comes dynamically )
<div id="VMScrollBoth1" class="sliderGallery">
<ul>
<li class="VMScrollBoth handle6"><span><a href="#"><img src="imagex.png"></a></span></li>
<li class="VMScrollBoth handle6"><span><a href="#"><img src="imagex2.png"></a></span></li>
<li class="VMScrollBoth handle6"><span><a href="#"><img src="imagex3.png"></a></span></li>
<li class="VMScrollBoth handle7"><span><a href="#"><img src="imagex4.png"></a></span></li>
<li class="VMScrollBoth handle7"><span><a href="#"><img src="imagex5.png"></a></span></li>
<li class="VMScrollBoth handle8"><span><a href="#"><img src="imagex6.png"></a></span></li>
<li class="VMScrollBoth handle8"><span><a href="#"><img src="imagex7.png"></a></span></li>
<li class="VMScrollBoth handle8"><span><a href="#"><img src="imagex.png"></a></span></li>
</ul>
<div class="slider ui-slider">
<a href="javascript:void(0)"> <div class="handle"></div></a>
<span class="slider-lbl1" id="handle8">SIENNA</span>
<span class="slider-lbl1" id="handle6">CARRIE</span>
<span class="slider-lbl1" id="handle7">ISABELLE</span>
</div>
</div>
what i want is . On page load all li elements shoud be display but when i click on span having id handle8 then only that li element would be display which have class handle8, rest of all li elements shoud be hidden
i write below code:
<style>
.gayab {display:none }
</style>
<script type="text/javascript">
jQuery('.slider-lbl1').live('click',function () {
var catID = jQuery(this).attr('id');
console.log(catID);
jQuery(this).parent().parent().children('ul').children('li').filter(
function(index) {
if((jQuery(this).hasClass(catID))){
jQuery(this).removeClass('gayab');
} else {
jQuery(this).addClass('gayab');
}
})
})
</script>
it’s working fine on FF but not working in IE ( i have IE7), please first optimize my code, i know this is very complex way to use jQuery & also tell me how to fix ot in IE
Thanks
UPDATE: VMScrollBoth1 is also coming dynamicaly, it can be VMScrollBoth2 or VMScrollBoth99
You can shorten it down to this:
You can give it a try here, this takes the clicked element’s
id, and finds any<li>elements under#VMScrollBoth1that do:not()have that.class, and.hide()s them..hide()/.show()are easier methods than having a class just fordisplay: none;🙂Here’s also a version that works for future clicks:
This shows all the
<li>elements then filters again on each click, allowing you to click multiple handles and the visible list updates each time, you can try it here.