1

次のエラーが表示されます:「TypeError: $ は関数ではありません $('#slider').list({」

        <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
        <script type="text/javascript" src="http://plumbsimple.com/wp-content/themes/bootstrapwp-87/js/basic-jquery-slider.min.js"></script>

         <script type="text/javascript">
              window.$ = jQuery;

              $(document).ready(function() {

                $('#slider').list({
                  'animation' : 'slide',
                  'width' : 700,
                  'height' : 300
                });

              });
        </script>

ヘッダーのデータ:

        <div id="slider"><ul class="list">
        <li><img src="<?php bloginfo( 'template_url' );?>/img/beach.jpg"></li>
        <li><img src="<?php bloginfo( 'template_url' );?>/img/hp-computers.jpg"></li>
        </ul>
        </div>
4

3 に答える 3

0

2 つのバリエーションがあります。

  1. jQuery ライブラリが読み込まれていません。
  2. または何か$のために関数で使用できない場合は、代わりに関数を使用してみてください。prototype.jsjQuery$
于 2012-09-21T00:38:47.780 に答える
0

おそらく、最初の「$」を「jQuery」に置き換えて「$」を関数に渡すと、そのエラーはなくなります。以下の例。

          `jQuery(document).ready(function($) {

            $('#slider').list({
              'animation' : 'slide',
              'width' : 700,
              'height' : 300
            });

          });`

wordpress codex を見ると、何が起こっているかの解決策を提供しています。
http://codex.wordpress.org/Function_Reference/wp_enqueue_script

于 2013-02-21T06:09:08.073 に答える
0

WP はデフォルトで jQuery をnoConflictモードにします: ( source )

注: WordPress に含まれる jQuery ライブラリは、「競合なし」モードで読み込まれます。これは、WordPress がロードできる他の JavaScript ライブラリとの互換性の問題を防ぐためです。

コンソールで簡単にテストできます。

ここに画像の説明を入力

したがって、jQuery の と競合する可能性のある他のライブラリを使用しない場合は、jQuery$を次のように再エイリアス化できます$

window.$ = jQuery;

その行を最初のスクリプトの最初の jQuery ライブラリの後に置くと、問題なく動作します。

また、プロトタイプや別のライブラリと競合する場合に備えて、すべての$参照を置き換えるjQueryか、別のエイリアスを使用することができます。

編集:実際には、グローバルも上書きするものがあります$$コードを IIFE でラップして、エイリアスを安全に使用できるスコープを作成できます。

(function($) {
    $(document).ready(function() {

        $('#slider').list({
            'animation': 'slide',
            'width': 700,
            'height': 300
        });

    });
})(jQuery);​
于 2012-09-21T00:48:13.853 に答える