0

我有一个完整的日历页面,我正在使用 qTip (v2)。问题是 qTip 提示真的很慢,有时似乎确实获得了鼠标悬停事件,因此我必须重新鼠标悬停然后触发。我有一个 ajax 调用,我认为可能会减慢它的速度,但是当我删除 ajax 调用时没有区别。

下面的代码是来自 fullcalendar 的 eventMouseover。我没有包含所有日历代码,因为我不认为这是问题所在。

eventMouseover: function(calEvent) { // start MouseOver
            if (typeof calEvent.TeamDetailID != 'undefined'){ //start undefined
            $(this).qtip({
                content: {
                    title: { text: calEvent.title },
                    text: 'Loading...',
                    ajax: {
                        url: '/inc/_runcfc.cfm',
                        type: 'post',
                        data: {cfc:'Display'
                            , cfcMethod:'TeamDetail_popUpDetail'
                            , TeamDetailID: calEvent.TeamDetailID
                        },
                        success: function(data, status) {
                            this.set('content.text', data);
                        }
                    }
                },
               show: { delay: 0}
            }); // (this).qtip
            } //end if undefined
        } // end mouseOver

我认为即使使用 ajax 调用,提示也应该快速弹出“正在加载....”的内容,而不管 ajax 替换内容需要多长时间。上面的代码在每隔一个鼠标悬停时“工作”,但仍然很慢。我这样做有什么问题吗?

4

2 回答 2

0

您描述的行为看起来与您的代码一致......您实际上是在第一个鼠标悬停(eventMouseover 处理程序)上配置 qtip,这将导致 qtip 将其自己的事件处理程序绑定到 mouseover 事件(因此为什么它适用于第二次鼠标悬停)。

但是,鉴于 eventMouseover 事件也被再次调用,您正在重新初始化 qtip ...

通常,我希望设置一次工具提示,然后使用其中一个事件(假设它们在您使用的 qtip 版本中提供)有条件地显示/隐藏工具提示。

于 2011-09-01T23:16:07.443 回答
0

我使用 qtip 取得了巨大成功;但我将它加载到事件渲染中

eventRender: function(event, element, view) {
    element.qtip({ //options });
}
于 2014-12-24T12:56:52.127 回答