2011-09-01 66 views
0

我有一個fullCalendar頁面,我正在使用qTip(v2)。問題是qTip提示真的很慢,有時似乎得到了mouseover事件,所以我必須重新進行鼠標懸停然後啓動它。我有一個ajax調用,我認爲可能會減慢它,但是當我刪除ajax調用時,沒有區別。fullcallendar和qTip非常慢

下面的代碼是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更換內容。上面的代碼對所有其他鼠標懸停都「起作用」,但仍然很慢。我在做這件事的時候有什麼不對嗎?

+0

可能要設置'緩存:在qtip Ajax調用內TRUE',我不知道你是否能做到這一點或沒有,但你仍然可以遺憾的是嘗試 – Rafay

+0

沒有。似乎沒有任何區別,似乎並沒有qtip傳遞緩存值,因爲ajax在每一個其他鼠標懸停上運行。我可以確認,鼠標懸停事件在第一次日曆事件第一次被隱藏時不會觸發。不能爲良好的用戶體驗做好準備 – Lance

回答

0

您描述的行爲看起來與您的代碼保持一致......您實際上是在第一個mouseover(eventMouseover處理程序)上配置qtip,然後這會導致qtip將其自己的事件處理程序綁定到鼠標懸停事件(因此爲什麼它在第二個鼠標懸停上工作)。

但是鑑於eventMouseover事件也再次呼籲,您正在重新初始化qtip ...

通常我會尋求建立工具提示一次,然後使用一個事件(假設他們在您使用的qtip版本中提供)來有條件地顯示/隱藏工具提示。

+0

你是對的!我將eventMouseover更改爲eventRender,並且它按預期工作。非常感謝你的幫助! – Lance

0

我使用qtip獲得巨大成功;但我有它加載的事件呈現

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