Reputation: 13
I've been banging away at this and can't seem to fix this. Ultimately I'm trying to make a drop down nav bar using jquery and divs which reveal by hovering. I've almost got it down, but thing is when I have two together and they overlap I can't get the bottom one to fade out.
Are there any suggestions for how to do this.
<!-- Home Tab -->
<div id="m_bar_home">
<script src="jquery-1.7.1.js"></script>
<script> var hide = false;
$("#m_bar_home, #m_dddhome").hover(function(){
if (hide) clearTimeout(hide);
$("#m_dddhome").fadeIn("fast");
}, function() {
hide = setTimeout(function() {
$("#m_dddhome, #m_ddd_lts").fadeOut("fast");
}, 250);
});
</script>
<div id="m_dddhome" >Allo there</div>
</div>
<!-- Learn To Sail Tab -->
<div id="m_bar_lts">
<script src="jquery-1.7.1.js"></script>
<script> var hide = false;
$("#m_bar_lts, #m_ddd_lts").hover(function(){
if (hide) clearTimeout(hide);
$("#m_ddd_lts").fadeIn("fast");
}, function() {
hide = setTimeout(function() {
$("#m_dddhome, #m_ddd_lts").fadeOut("fast");
}, 250);
});
</script>
<div id="m_ddd_lts" >Allo there</div>
Here is a demo
I think it has something to do with an if function but I'm not sure.
Any ideas?
Upvotes: 0
Views: 543
Reputation: 78991
Your coding is very beginner level and very inefficient. I am not trying to offend, but
You should assign a common selector for every div. What if next you have 100 divs, are you going to include 100 jquery files, and same function again and again for each element.
This is how you should do it.
$(".hover").hover(function(){
$(this).children(".inner").fadeIn("fast");
}, function() {
$(this).children(".inner").fadeOut("fast");
});
I made some changes to the markup as well to add a common class.
Upvotes: 1