Проблема с подсказкой в ​​jQuery - PullRequest
0 голосов
/ 04 мая 2010

У меня есть таблица, в которой некоторые смежные ячейки имеют одинаковый класс (someClass). Я хотел бы отобразить всплывающую подсказку, когда мышь наводит одну из этих ячеек. Вот как я это реализовал:

/* HTML code */

<div id="tooltip"><div>

/* CSS code */

#tooltip {
    display: none;
    position: absolute;
    border: 1px solid #333;
    background: #f7f5d1;
    padding: 2px 5px;
    color: #333;
    font-size: 20px;
}

/* jQuery code */

$(".someClass").hover(function(e) {
                         $("#tooltip").html("Shalom")
                                      .css("top",  (e.pageY - 10) + "px")
                                      .css("left", (e.pageX + 20) + "px")
                                      .fadeIn("fast");      
                      },
                      function() {
                         $("#tooltip").html("").hide();
                      });

$(".someClass").mousemove(function(e) {
                             $("#tooltip").css("top",  (e.pageY - 10) + "px")
                                          .css("left", (e.pageX + 20) + "px");
                          });

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

Как можно предотвратить исчезновение всплывающей подсказки и ее повторное появление?

Спасибо!

1 Ответ

0 голосов
/ 04 мая 2010

Фрагмент непроверенного кода требуется, чтобы всплывающая подсказка идентифицировалась # tooltip_id

var some_object = { 
    about_to_be_closed: false,
    close_unless_needed: function() {
        if (some_object.about_to_be_closed) {
            $(some_object.about_to_be_closed).fadeOut();
        }
    }
};


// code to be executed on close 
some_object.about_to_be_closed = tooltip_id;
window.setTimeout(close_unless_needed, 100)


// code to be executed on open
if (some_object.about_to_be_closed == tooltip_id) {
    some_object.about_to_be_closed = false;
}

На самом деле это не надежное решение, но оно может сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...