My script works fine without $this, but when I delete $this, then on hover script display all submenus. Could someone explain me where I make mistake?
$(function () {
var timeoutId;
$(".mainmenu li").hover(function () {
if (!timeoutId) {
timeoutId = window.setTimeout(function () {
timeoutId = null;
$(this).find('.submenu').slideDown('slow');
}, 1500);
}
},
function () {
if (timeoutId) {
window.clearTimeout(timeoutId);
timeoutId = null;
} else {
$(".submenu").slideUp('slow');
}
});
});
My html:
<div id="a">
<ul class="mainmenu">
<li>
CARS
<ul class="submenu">
<li><a href="#">White</a></li>
<li><a href="#">Black</a></li>
<li><a href="#">Red</a></li>
<li><a href="#">Silver</a></li>
<li><a href="#">Yellow</a></li>
<li><a href="#">Other</a></li>
</ul>
</li>
<li>
TIRES
<ul class="submenu">
<li><a href="#">14"</a></li>
<li><a href="#">15"</a></li>
<li><a href="#">16"</a></li>
<li><a href="#">17"</a></li>
<li><a href="#">18"</a></li>
</ul>
</li>
</div>
.mainmenu has more than 2 submenus.