0

ポータル ページにポートレットの複数のインスタンスが存在する可能性があるポータル環境で、jQuery のcluetip プラグインを使用しています。各ポートレットは独自のアプリであるため、実際には他のポートレットについて何も知りません。各ポートレットは、cluetip プラグインを使用する必要があるため、必要なときにロードされます。問題は、cluetip スクリプトが複数回読み込まれると、次のエラーが生成されることです。

$cluetip is undefined

考えられる解決策の 1 つは、プラグインが既に読み込まれているかどうかを確認することだとわかっていますが、試したすべての確認が失敗します。私が試してみました:

if(jQuery.cluetip), if(jQuery().cluetip), if(jQuery.fn.cluetip), if(jQuery().fn.cluetip)

そしてどれも機能しません。それらはすべて未定義を返します。

プラグインが既にロードされているかどうかを確認するにはどうすればよいですか? または、実装できる別のソリューションはありますか?

4

2 に答える 2

0

ドキュメント準備機能内で手がかりを利用していますか?

$(function() {
  $('a.tips').cluetip();
});

上記のコードに基づいて、cluetip を適切に使用しているようには見えません。プラグインがロードされているかどうかを実際に確認する必要はありません。ヘッダーにスクリプトがある場合:

<script src="jquery.js" type="text/javascript"></script>
<script src="jquery.cluetip.js" type="text/javascript"></script>

次に、上記の例でヒントを表示したいもの (「a.tips」) を選択するだけで、うまくいくはずです。

Javascript と HTML を投稿していただければ、より適切な回答を提供できます。

于 2010-09-13T18:18:24.823 に答える
0

cuetip サイトのソースを見ると、次のようになります。

<script type="text/javascript">
$(document).ready(function() {
  $('a.tips').cluetip();

  $('#houdini').cluetip({
    splitTitle: '|', // use the invoking element's title attribute to populate the clueTip...
                     // ...and split the contents into separate divs where there is a "|"
    showTitle: false // hide the clueTip's heading
  });
});
</script>
<link rel="stylesheet" href="jquery.cluetip.css" type="text/css" />

最初に読み込まれるのは jQuery.js であり、その後に cuetip が続くことに注意してください。

HTML が同じに見えることを確認し、キューチップと jQuery が正常にロードされていることを確認します。

于 2010-09-13T18:20:22.773 に答える