У меня есть всплывающая подсказка, которая появляется при наведении указателя мыши на ссылку. Я хочу, чтобы всплывающая подсказка оставалась, если вы наводите на нее курсор (потому что в ней есть ссылки и т.д.), Или исчезают, если вы уйдете от ссылки. Я попробовал пару вещей, но не понял. Это первый раз, когда я строил что-то серьезное с jQuery.
Ниже приведено то, что находится в событии.hover() handlerOut.
if($(this.a).mouseout())
{
if ($('.tip_container').hover()) {
$('.tip_container').css('display', 'block');
$('.tip_container').mouseleave(function() {
$('.tip_container').remove(0);
});
} else if ($('.tip_container').hover() == false && $(this.a).mouseoff() == true)
{
$('.tip_container').remove(0);
}
}
>>"this.a" refers to the link<<
С этим и другими вещами, которые я пробовал, всплывающая подсказка не исчезает, если вы не нажмете на нее. Я также пробовал
else if (!$('.tip_container').hover() && $(this.a).mouseoff()) {
Возможно ли иметь несколько условий?
Основная идея кода заключается в том, что если вы нажмете ссылку "this.a", всплывающая подсказка будет удалена:
$('.tip_container').remove(0);
но если вы наведите указатель мыши на всплывающую подсказку, она не будет удалена, пока вы не отпустите подсказку.
После хороших ночных покоев и игнорируя это некоторое время, я понял решение. Это то, что я вложил в событие hover handlerOut.
var timer;
timer = setTimeout(function() {
$('.tip_container').remove();
}, 500);
$( '.tip_container' ).hover(
function() {
clearTimeout(timer);
$('.tip_container').css('display', 'block');
}, function() {
$('.tip_container').remove();
}
);
При наведении курсора из ссылки он будет ждать, прежде чем выполнить удаление, и если мышка нависает над всплывающей подсказкой, он очистит таймер и установит всплывающую подсказку для блокировки, чтобы он отображался, а затем на этом курсе из всплывающей подсказки он будет удален.
У вас есть скрипка или что-нибудь, что можно продемонстрировать?
Возможно, что-то вроде
$(this, '.tip_container').hover(function () {
$('.tip_container').show();
}, function () {
$('.tip_container').hide();
}
);
В основном свяжите ссылку и элементы подсказки с методом наведения, который скрывает/показывает элемент подсказки на mouseenter/mouseleave. Ссылка Pointy, размещенная в комментариях, является хорошим местом для начала