JQuery, если еще комментарий для всплывающей подсказки

0

У меня есть всплывающая подсказка, которая появляется при наведении указателя мыши на ссылку. Я хочу, чтобы всплывающая подсказка оставалась, если вы наводите на нее курсор (потому что в ней есть ссылки и т.д.), Или исчезают, если вы уйдете от ссылки. Я попробовал пару вещей, но не понял. Это первый раз, когда я строил что-то серьезное с 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);

но если вы наведите указатель мыши на всплывающую подсказку, она не будет удалена, пока вы не отпустите подсказку.

Теги:
if-statement
tooltip

2 ответа

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();
       }
    );

При наведении курсора из ссылки он будет ждать, прежде чем выполнить удаление, и если мышка нависает над всплывающей подсказкой, он очистит таймер и установит всплывающую подсказку для блокировки, чтобы он отображался, а затем на этом курсе из всплывающей подсказки он будет удален.

0

У вас есть скрипка или что-нибудь, что можно продемонстрировать?

Возможно, что-то вроде

$(this, '.tip_container').hover(function () {
        $('.tip_container').show();
  }, function () {
        $('.tip_container').hide();
  }
);

В основном свяжите ссылку и элементы подсказки с методом наведения, который скрывает/показывает элемент подсказки на mouseenter/mouseleave. Ссылка Pointy, размещенная в комментариях, является хорошим местом для начала

  • 0
    Я не могу сделать скрипку легко, потому что это часть Chrome-расширения, которое я делаю, опираясь на сайты, которые он модифицирует для работы. Сожалею.
  • 0
    все в порядке, мой ответ или вариант сработал для вас?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню