我有一个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替换内容需要多长时间。上面的代码“适用于”其他所有鼠标悬停但仍然很慢。我这样做有什么不对吗?
答案 0 :(得分:0)
您正在描述的行为看起来与您的代码保持一致......您实际上是在第一次鼠标悬停(eventMouseover处理程序)上配置qtip,这将导致qtip将其自己的事件处理程序绑定到mouseover事件(因此它适用于第二次鼠标悬停)。
但是,如果再次调用eventMouseover事件,则会重新初始化qtip ...
通常我会设置一次工具提示,然后使用其中一个事件(假设它们是在您正在使用的qtip版本中提供)来有条件地显示/隐藏工具提示。
答案 1 :(得分:0)
我使用qtip取得了巨大的成功;但我把它加载到事件渲染
eventRender: function(event, element, view) {
element.qtip({ //options });
}