i have a div containing multiple divs with absolute position, i want to handle the mouse enter event for the parent div i use this fiddle:
fiddle
it doesnt works correctly is their any other way to handle this problem ?
HTML Markup
<div id="content">
SYDNEY (Reuters) - An Australian man had his driving licence suspended for 10 months and was fined after he was
<div class="abs"></div>
caught driving a scooter made of a motorised beer cooler capable of carrying several dozen drinks -- after knocking back a few.
</div>
<div id="output">
</div>
SCRIPT
$(function() {
var output = $("#output");
$("#content")
.mouseenter(function(e){
output.text("I'm in!");
}).mouseout(function(e) {
output.text("I'm out!");
});
});
#content {
background-color:#cccc99;
position:relative;
}
.abs{
position:absolute;
top:0px;
left:70px;
background-color:red;
width:30px;
height:30px;
}
You’re halfway there yourself. Because the
mouseoverandmouseoutevents bubble, they will trigger multiple times as youmouseoverandmouseoutof child elements of the element your event handlers are watching. jQuery provides the IE-inspiredmouseenterandmouseleaveevents, which only trigger for mouse events on the watched elements themselves, and are not triggered for events on the element’s children. Use themouseoverandmouseleaveevents, and your code will work as expected. See this updated fiddle. Alternatively, use the jQueryhoversyntax, which internally uses themouseenterandmouseleaveevents, wrapped in a convenient syntax.