Я пытаюсь создать панель навигации, очень просто, понять, как это сделать, но есть что-то, что дает мне головную боль. Позвольте мне показать вам мой код, прежде чем объяснять его дальше:
HTML:
<div id="navBar">
<ul class="tiles">
<li class="tile">
<div class="invDiv">Test</div>
</li>
</ul>
</div>
JQuery/Js:
$('.tile').mouseenter(function(){
$('.invDiv').show();
});
$('.tile').mouseout(function(){
$('.invDiv').hide();
});
Это он, по-настоящему простой. Поэтому, когда моя мышь выходит из моего первого ли и идет прямо на мой div, div исчезает. Хорошо, это из-за моей функции mouseout на.tile... Я это понимаю, но как я могу поставить условие, которое будет выглядеть следующим образом: Если мой.invDiv находится на дисплее: block, то группируйте.tile +.invDiv. Уберите исчезновение.invDiv только тогда, когда вы находитесь вне.invDiv или.tile... но даже тогда, если моя мышь находится внутри моего.invDiv, и я продолжаю мой.tile, что.invDiv исчезнет! Я знаю это о состоянии, но как его написать?!
(Надеюсь, вы все поймете меня, я не так хорош на английском! Спасибо всем.)
Насколько я понял ваш вопрос, я думаю, что это то, что вы хотите:
$('.tile').mouseover(function(){
$('.invDiv').show();
});
$('.tile').mouseout(function(){
$('.invDiv').hide();
});
Просто используйте функцию.toggle()
$('.tile').mouseenter(function(){
$('.invDiv').toggle();
});
$('.tile').mouseout(function(){
$('.invDiv').toggle();
});
Лучший способ написать этот код:
$('.tile').on('mouseenter', function(){
$('.invDiv').toggle();
});
$('.tile').on('mouseout',function(){
$('.invDiv').toggle();
});
Таким образом, у вас нет никаких проблем, если вы измените somenthing в этом div