1

qtip2を使用しています。qTip APIオブジェクトにアクセスしようとしていますが、ここに記載されているメソッドが表示されません。qTipをKnockoutJSと組み合わせて使用​​しているので、コードは次のようになります。

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を使用していますか?私はこれにリンクしています。

4

1 に答える 1

2

qtip2 を使用していると思いますが、updateContent メソッドは qtip1 用でした。ここで動作するようにコードを更新しました。

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

テキストセレクターを介してコンテンツを設定する際に 1 つの問題がありました。prerender 値を true にする必要があります。誰かがここでこの落とし穴について言及しました

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

お役に立てれば

于 2012-03-08T22:46:37.620 に答える