/ / Dziwne zachowanie rozwijanego menu CSS - javascript, jquery, html, css, rozwijane-menu

Dziwne zachowanie menu rozwijanego CSS - javascript, jquery, html, css, rozwijane menu

Proszę spojrzeć na to połączyć. Najechanie kursorem na „menu” spowoduje wyświetlenie menu rozwijanego i zatrzymanie się. Teraz próbuję zmienić menu na TD element i przypisz do niego obraz TD element i po najechaniu kursorem na ten obraz zmieni obraz i pojawi się lista rozwijana. Proszę zapoznać się z poniższym kodem:

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<style>
li.li_class{
display: block;
}

ul.dropDown{
margin:0px;
padding:0px;
}
#clickable_div {width:166px; background-color:#9c9c9c;display:block;}

#nav_menu{width:166px; height:auto; background-color:#CCC;z-index: 99999; display: none;position: absolute;}

#wrap{ width:166px;}
</style>
</head>

<body>
<table>
<tr>
<td><img src="/images/images/ori_12.png">
</td>
<td id="testable">
<div id="wrap">
<img src="/images/images/ori_14.png">
<div id="nav_menu">
<ul class="dropDown">
<li class="li_class"><img src="/images/images/ori_12.png"></li>
<li class="li_class"><img src="/images/images/ori_14.png"></li>
<li class="li_class"><img src="/images/images/ori_15.png"></li>
<li class="li_class"><img src="/images/images/ori_16.png"></li>
</ul>
</div>
</div>
</td>
</tr>
<tr>
<td>
abc
</td>
<td>
def
</td>
</tr>
</table>

</body>
<script>
$("#testable img")
.mouseenter(function () {
this.src = this.src.replace("/ori_", "/hover_");
$("#nav_menu").stop(true, true).slideDown();
})
.mouseleave(function () {
this.src = this.src.replace("/hover_", "/ori_");
$("#nav_menu").stop(true, true).slideUp();
});



$("#nav_menu li img")
.mouseover(function () {
this.src = this.src.replace("/ori_", "/hover_");
})
.mouseout(function () {
this.src = this.src.replace("/hover_", "/ori_");
});

</script>
</html>

Kiedy najeżdżam kursorem na obraz, obraz jest zastępowany, a menu rozwijane przesuwa się w dół, jednak po prostu nie mogłem najechać kursorem na element listy rozwijanej, ponieważ menu rozwijane przesuwa się natychmiast.

Odpowiedzi:

1 dla odpowiedzi № 1

Próbować

 $("#testable  #wrap").mouseenter(function (e) {
var anc = $(this).children("img").get(0);
anc.src = anc.src.replace("/ori_", "/hover_");
$("#nav_menu").stop(true, true).slideDown();
}).mouseleave(function (e) {
var anc = $(this).children("img").get(0);
anc.src = anc.src.replace("/hover_", "/ori_");
$("#nav_menu").stop(true, true).slideUp();
});

Skrzypce

Mouseout zostaje wyzwolone, gdy umieścisz kursor pozaobraz, aby umieścić kursor w menu. Więc zastosuj zdarzenia najechania na opakowanie. Jeśli to opakowanie nie jest odpowiednie, utwórz opakowanie do zawijania menu i jego obrazu i zastosuj na nim efekt najechania kursorem.