Как установить таймер delayOut для плагина всплывающей подсказки jQuery? - PullRequest
1 голос
/ 21 марта 2012

Я использую плагин всплывающей подсказки jQuery (Bassistance).Теперь я хочу установить таймер delayOut на всплывающей подсказке, но это не вариант плагина.Я также хочу, чтобы всплывающая подсказка оставалась видимой при наведении на нее всплывающей подсказки.

Знаете ли вы, как можно добиться этих двух функций без использования другого плагина jQuery?

1 Ответ

0 голосов
/ 22 марта 2012

установить задержку выхода

Чтобы сделать таймер задержки, вы должны создать новый параметр таймера в вашем jquery.tooltip.js, например так:

var helper = {},
        // the current tooltipped element
        current,
        // the title of the current element, used for restoring
        title,
        // timeout id for delayed tooltips
        tID,
            // timeout id for tooltip timeout
        tDelayoutID,
        // IE 5.5 or 6
        IE = $.browser.msie && /MSIE\s(5\.5|6\.)/.test(navigator.userAgent),
        // flag for mouse tracking
        track = false;

Затем добавьте параметр delayOut для всплывающей подсказки:

$.tooltip = {
        blocked: false,
        defaults: {
            delay: 200,
            delayOut: 5000,
            fade: false,
            showURL: true,
            extraClass: "",
            top: 15,
            left: 15,
            id: "tooltip"
        },
        block: function() {
            $.tooltip.blocked = !$.tooltip.blocked;
        }
    };

Далее создайте таймер:

    function show() {
      tID = null;

      if (tDelayoutID)
        clearTimeout(tDelayoutID);

      if( settings(this).delayOut )
        tDelayoutID = setTimeout(hide, settings(this).delayOut);

      if ((!IE || //...

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

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

...