Плагин Jquery Tooltip, не повторять div append? - PullRequest
2 голосов
/ 26 января 2011

Хорошо, я не вижу, чтобы получить это.

Я делаю плагин всплывающей подсказки, который можно применить к нескольким элементам.

У меня есть несколько якорей на странице при наведении мышиони действуют как подсказки.Я использую переменную c_ttip, чтобы действовать в качестве идентификатора для div, потому что я не хочу устанавливать для него идентификатор.

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

страница разработчика скрипта, http://kalluna.com/_dev-js.do

var c_ttip = $('<div>');

return this.each(function() {

 $(this).mouseover(function() {
    c_ttip.appendTo(document.body).hide();
    c_ttip.html('inside my tooltip').addClass('c_ttip_box').css({'top' : obj.position().top + 20, 'left' : obj.position().left}).show();

 }).mouseout(function() {

      timer = setTimeout(function() {
      c_ttip.fadeOut(200, function() { c_ttip.remove();});

    }, 2000);

   });
});

Ответы [ 2 ]

2 голосов
/ 26 января 2011

Вы можете сохранить объект, вызвавший всплывающую подсказку, и убедиться, что объект отличается, прежде чем добавлять div.Что-то вроде:

var c_ttip = $('<div>');
var currobject;
...
$(this).mouseover(function() {
if(this == currobject) return;
currobject = this;
...
1 голос
/ 26 января 2011

Вам нужна некоторая форма мьютекса / флага / семафора, чтобы указать, что вы находитесь в ситуации тайм-аута / затухания и что событие mouseover() не должно запускаться.

Переменная таймера, которую вы создали для тайм-аутаID может быть использован для этой цели.Создайте его выше как переменную (изначально false), как у вас для c_ttip.Затем установите значение false в обратном вызове fadeOut().Процедура mouseover() должна проверить, если timer != false, когда она запускается, и сразу же выйти, если она есть.

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

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