Не совсем уверен, что вы ищете, но здесь есть некоторые быстрого кода, который показывает DIV и остается видимым, пока вы наведите указатель мыши на этот div и затем выйдите. Не был уверен, что вы делали с этим шоу-классом, поэтому я добавил его в примере, но на самом деле он ничего не делает в моем примере.
Я считаю, что ваша проблема заключается в том, что вы передали один обработчик и согласно документам jQuery, когда вы передаете один обработчик hover
, он запускается при наведении и наведении.
https://api.jquery.com/hover/#hover-handlerInOut
Из документации:
Метод .hover(), при передаче одной функции, будет выполнять эту обработчик для обоих MouseEnter и MouseLeave события. Это позволяет пользователю использовать различные методы переключения jQuery в обработчике или по-разному реагировать на обработчик в зависимости от типа event.type.
В моем примере ниже вы можете увидеть пример предоставления одного обработчика или двух.
Fiddle: http://jsfiddle.net/x4fo4zkk/
HTML:
<a id="show">show more</a>
<div id="more">here is more</div>
CSS:
div {
background: red;
height: 100px;
width: 100px;
display: none;
}
JS:
$('#show').hover(
function() {
$('#more').fadeIn();
}
);
$('#more').hover(
function() {
$(this).addClass('show');
},
function() {
$(this).removeClass('show').fadeOut();
}
);
скрипку будет очень приятно. Как насчет того, чтобы вы удалили.fadeToggle() –
Вы можете заменить hover на «mouseenter», поскольку это вызывается только при вводе элемента, а не при выходе. – pBuch