0

jQuery を使用する小さな JavaScript の実装に問題があります。コードは

$(document).ready(function () {
     $("span.question").hover(function () {
         $(this).append('<div class="tooltip"><p>This is a tooltip. It is typically used to explain something to a user without taking up space on the page.</p></div>');
     }, function () {
         $("div.tooltip").remove();
     });
 });

mootools javascript の競合が原因で問題が発生したと言われている同様の投稿を見たことがあります。そのため、「$」の各インスタンスを「jQuery」に置き換えましたが、スクリプトはまだ何も実行せず、firebug コンソールにエラーは表示されません。誰かが私に問題が何であるかを示すことができますか? ありがとう。

4

2 に答える 2

2

このドキュメントをお読みください。

多くのJavaScriptライブラリは、jQueryと同様に、関数または変数名として$を使用します。jQueryの場合、$はjQueryの単なるエイリアスであるため、$を使用しなくてもすべての機能を利用できます。jQueryと一緒に別のJavaScriptライブラリを使用する必要がある場合は、$。noConflict()を呼び出して、$の制御を他のライブラリに戻します。$の古い参照は、jQueryの初期化中に保存されます。noConflict()は単にそれらを復元します。

したがって、コントロールをに戻す必要がありますjQuery。次にjQuery、「$」の代わりに使用する必要があります。

<script type="text/javascript">
    $.noConflict();
    jQuery(document).ready(function($) {
        jQuery("span.question").hover(function () {
            jQuery(this).append('<div class="tooltip"><p>This is a tooltip. It is typically used to explain something to a user without taking up space on the page.</p></div>');
        }, function () {
            jQuery("div.tooltip").remove();
        });
     });
</script>

注: jQueryが1回だけ含まれていることを確認してください。

編集:機能を閉じるのを忘れました.ready。私はそれを修正しました。これがどのように機能するかを確認するためのフィドルリンクです。

于 2013-03-09T19:17:40.107 に答える
0

コードの最初に次のように書いてみてください。

jQuery.noConflict()
于 2013-03-09T19:07:51.057 に答える