FullCalendar + QTips на событиях AllDay зависают - PullRequest
0 голосов
/ 04 апреля 2011

Я использую реализацию qtip , которая запускается при наведении указателя мыши на панели событий «AllDay».

Она имеет тенденцию правильно выводить «qtip», но затемзависать, а не закрывать / скрывать подсказку, когда мышь вышла за пределы активной области календаря.

Вы можете воссоздать проблему, быстро перемещая указатель мыши в область календаря на странице http://jsfiddle.net/GxXrW/8/.

Есть ли у вас какие-либо мысли о силе, скрывающие 'qtip'? Вот моя реализация:

        eventMouseover: function(event, jsEvent, view) {
        clearTimeout(qtipTimeout);

        if (suspendTooltips || $(this).data('qtip')) {
            return;
        }

        $(this).qtip({
            content: {
                text: '...removed...',
                prerender: true
            },
            show: {
                solo: true,
                when: 'mouseover',
                delay: 800, //increased wait-time to not have unwanted qtips fire
                effect: {
                    type: 'slide',
                    length: 285
                }
            },
            hide: {
                effect: {
                    type: ''
                }
            },
            position: {
                target: 'mouse',
                adjust: {
                    x: 10,
                    y: 4,
                    mouse: true,
                    screen: true,
                    scroll: false,
                    resize: false
                },
                corner: {
                    target: 'bottomLeft',
                    tooltip: 'topLeft'
                }
            },
            style: {
                tip: 'topLeft',
                padding: 10,
                background: event.bgColor, //driven from array generated elsewhere
                color: event.fgColor, // ''
                border: {
                    width: 2,
                    radius: 7,
                    color: event.bdrColor // ''
                },
                width: 365
            },
            api: {
                onRender: function() {
                    var self = this;
                    qtipTimeout = setTimeout(function() {
                        self.show();
                    }, 450);
                },
                beforeShow: function() {
                    return (!suspendTooltips);
                }
            }
        });

1 Ответ

1 голос
/ 13 апреля 2011

Ваша реализация выше похожа на формат qTip1, но скрепка, с которой вы связаны, - это qTip2, поэтому здесь, вероятно, есть два ответа.

В случае связанного jTF2 qTip2, проблема связана сРасфокусировка как событие скрытия (где пользователь должен явно щелкнуть где-то еще) в сочетании с настройкой соло.Это не совсем ошибка, хотя.Происходит следующее: параметр solo: true заставляет qTips скрывать каждый раз, когда вы наводите курсор мыши на другой календарный день, ДО того, как вы доберетесь до краев календаря - где больше нет qTips, чтобы вызвать событие скрытия любых видимых подсказок.

Изменение его на использование hide.fixed с небольшой задержкой (чтобы пользователь мог наводить мышкой на подсказку), похоже, решает проблему с этой версией:

http://jsfiddle.net/kiddailey/GxXrW/21/

Что касается примера qTip1, я не совсем уверен, почему он делает то, что вы описываете.Возможно, вы захотите удалить некоторые из дополнительных функций qTip (а именно эффекты анимации и задержки) и посмотреть, если это изменит поведение.Это может быть просто время между движением мыши и моментом запуска событий, вызывающих проблему.

Если вы опубликуете работающий jsFiddle версии qTip1, я с удовольствием посмотрю еще раз.

...