2012-03-08 65 views
1

我正在使用qtip2。我試圖訪問qTip API對象,但沒有看到任何記錄的方法here。我使用與KnockoutJS結合qTip,所以我的代碼如下所示:無法解析qTip API方法

ko.bindingHandlers.withdocs = { 
    init: function(element, valueAccessor) { 
     var docs = ko.utils.unwrapObservable(valueAccessor()); 
     var nDocs = docs.length; 
     console.log(docs); 
     if (nDocs > 0) { 
      var label = nDocs == 1 ? " doc" : " docs"; 
      $(element) 
       .addClass('withdocs') 
       .text("with " + docs.length + label) 
       .qtip({ 
        content: { 
         text: getTooltipText(docs), 
         title: { 
          text: 'Documents used in query' 
         } 
        }, 
        show: { 
         event: 'mouseover', 
         solo: true // Only show one tooltip at a time 
        }, 
        hide: 'unfocus', 
        style: { 
         classes: 'ui-tooltip-wiki ui-tooltip-light ui-tooltip-shadow' 
        } 
       }) 
     } 
    }, 
    update: function(element, valueAccessor) { 
     var docs = ko.utils.unwrapObservable(valueAccessor()); 
     // error occurs in the following line 
     $(element).qtip("api").updateContent(getTooltipText(docs)); 
    } 
}; 

所報告的錯誤是

Uncaught TypeError: Object #<QTip> has no method 'updateContent' 

完整的例子可以在jsfiddle找到。

我使用錯誤版本的qtip嗎?我鏈接到this one

回答

2

我相信你使用的是qtip2,updateContent方法是針對qtip1的。我已經更新了你的代碼在這裏工作。

http://jsfiddle.net/madcapnmckay/bANWb/

我有一個問題,通過文本選擇設置內容,你需要的預渲染值是真實的。有人提到在這份疑難雜症

http://craigsworks.com/projects/forums/thread-solved-updatecontent-and-documentation-on-methods

希望這有助於

+0

礦似乎沒有'預渲染的工作:TRUE'財產 – 2012-03-09 00:37:45

+0

剛試,而我的工作太,也許是紅鯡魚。 :) – madcapnmckay 2012-03-09 00:57:29

+0

在我的應用程序中,我需要數以百計的這些,這使得它們初始化時效率低下;我將初始化移動到init函數中的mouseover處理函數,該函數首先測試qtip,如果找不到則創建它。 – 2012-03-09 01:35:08