1

qTip2を使用して、サイトのいくつかのボタンにツールチップを添付しています。ボタンの1つをクリックすると、表示されている間に独自のツールチップに表示されるコンテンツを変更する必要があります。

私は、同じ問題に対処し、実用的な例を提供するSOでこの質問を見つけました。例の関連部分は次のとおりです。

var qapi = $('#test').data('qtip'),
    newtip = 'new content';

qapi.options.content.text = newtip;
qapi.elements.content.text(newtip);
qapi.redraw();

基本的に、ツールチップを取得し、新しいコンテンツを定義し、新しいコンテンツを交換redraw()し、ツールチップを呼び出して、新しいコンテンツが配置された状態で再描画されるようにします。

ただし、この例と自分のサイトでの実装の両方で、IE8でエラーが発生します。これは機能し、コンテンツは期待どおりに変更されます。他のすべてのブラウザでも機能しますが、エラーは発生しません。

エラーは次のとおりです。

Object doesn't support this property or method

と呼ばれる行でredraw()

qapi.redraw();

このエラーの発生を防ぐ方法はありますか?機能がredraw()動作し、ツールチップの内容が希望どおりに変更されているのがわかりますが、エラーが発生すると「音が鳴り」、IEのステータスバーに警告アイコンが表示されます。

4

1 に答える 1

1

どうやらreposition()、ツールチップのコンテンツを更新し、それをトリガーした要素に対して中央に配置されるように再配置する機能があります(新しいコンテンツの長さが異なる場合)。したがって、代わりに:

qapi.redraw();

使用するだけです:

qapi.reposition();

これは同じ効果がありますが、IE8のエラーを取り除きます。

于 2012-12-05T15:49:10.563 に答える