Можно ли оставить эту подсказку jQuery включенной, когда на нее наведен курсор? - PullRequest
4 голосов
/ 18 января 2011

http://onehackoranother.com/projects/jquery/tipsy/

Допустим, я нахожусь над чем-то. И всплывающая подсказка появляется над ссылкой. Когда я перемещаю мышь к всплывающей подсказке, она исчезает. Есть ли способ сохранить это?

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

Ответы [ 4 ]

1 голос
/ 01 июля 2012

Эта функция не является встроенной, но не так сложно добавить ее вручную, показывая и скрывая подсказки (используя trigger: 'manual' и $.hover()).Приведенный ниже код, хотя и немного длинный, должен нормально работать.

$('.some-class-name').each(function () {

    var me = this,
        timer = null,
        visible = false;

    function leave() {
        // We add a 100 ms timeout to give the user a little time
        // moving the cursor to/from the tipsy object
        timer = setTimeout(function () {
            $(me).tipsy('hide');
            visible = false;
        }, 100);
    }

    function enter() {
        if (visible) {
            clearTimeout(timer);
        } else {
            $(me).tipsy('show');
            // The .tipsy object is destroyed every time it is hidden,
            // so we need to add our listener every time its shown
            $('.tipsy').hover(enter, leave);
            visible = true;
        }
    }

    $(this).tipsy({html: true, trigger: 'manual'});
    $(this).hover(enter, leave);

});
1 голос
/ 11 июля 2011

Пожалуйста, проверьте следующий код jquery.tipsy.js file

Начиная со строки 61 и далее

function() {
    $.data(this, 'cancel.tipsy', false);
    var self = this;
    setTimeout(function() {
        if ($.data(this, 'cancel.tipsy')) return;

        var tip = $.data(self, 'active.tipsy');
        if (opts.fade) {
            tip.stop().fadeOut(function() { 
                $(this).remove();   
            });
        } else {
            tip.remove();
        }
}, 100); // <- change 100 to 1000


Измените «100» на «1000» в указанной строке.

0 голосов
/ 18 января 2011

Попробуйте плагин cluetip. т.е. липкий вариант в том, что снизу ссылка -

http://plugins.learningjquery.com/cluetip/demo/

Этот плагин прост в использовании, также доступно множество опций конфигурации.

0 голосов
/ 18 января 2011

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

$("#element").tipsy({ delayOut: 2000 }); // delay before hiding tooltip (ms)

См. Другие параметры конфигурации здесь:

http://onehackoranother.com/projects/jquery/tipsy/#options

...