fullcalendar和qTip非常慢

时间:2011-09-01 22:25:02

标签: jquery fullcalendar qtip2

我有一个fullCalendar页面,我正在使用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调用,提示也应该快速弹出“loading ....”的内容,而不管ajax替换内容需要多长时间。上面的代码“适用于”其他所有鼠标悬停但仍然很慢。我这样做有什么不对吗?

2 个答案:

答案 0 :(得分:0)

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

但是,如果再次调用eventMouseover事件,则会重新初始化qtip ...

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

答案 1 :(得分:0)

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

eventRender: function(event, element, view) {
    element.qtip({ //options });
}