TypeError:$はjQuery関数を呼び出すときの関数ではありません


6 Answers

これはそれを修正する必要があります:

jQuery(document).ready(function($){
  //you can now use $ as your jQuery object.
  var body = $( 'body' );
});

簡単に言えば、WordPressはできるだけ先に独自のスクリプティングを実行し、他のライブラリと衝突しないように$ varを解放します。 これは、ワードプレスがあらゆる種類のウェブサイト、アプリ、そしてもちろんブログに使われているように、完全に意味を成しています。

彼らのドキュメントから:

WordPressに含まれるjQueryライブラリは、noConflict()モードに設定されています(wp-includes / js / jquery / jquery.jsを参照)。 これは、WordPressがリンクできる他のJavaScriptライブラリとの互換性の問題を防ぐためです。

noConflict()モードでは、jQueryのグローバル$ショートカットは利用できません...

Question

私はこのようなjQueryラッパーを使用しているWordPressのプラグインで簡単なjQueryスクリプトを持っています:

$(document).ready(function(){

    // jQuery code is in here

});

私はWordPressダッシュボード内からこのスクリプトを呼び出していて、jQueryフレームワークがロードされた後にロードしています。

Firebugのページをチェックすると、私は常にエラーメッセージを受け取り続けます:

TypeError:$は関数ではありません

$(document).ready(function(){

この関数でスクリプトをラップする必要がありますか?

(function($){

    // jQuery code is in here

})(jQuery);

私はこのエラーをかなり数回受けており、それをどのように処理するか分かりません。

どんな助けでも大歓迎です。




<script>
var jq=jQuery.noConflict();
(function ($) 
    {
    function nameoffunction()
    {
        // Set your code here!!
    }

    $(document).ready(readyFn); 
    })(jQuery);

jQueryの代わりにjqを使用する




また、jQueryのnoConflictモードを使用するための良い解決策を見つける。

(function($){

  $(document).ready(function(){
      // write code here
  });

  // or also you can write jquery code like this

  jQuery(document).ready(function(){
      // write code here
  });

})(jQuery);

私はここからこの解決策を見つけました。 https://thecodingstuff.com/how-to-properly-use-jquery-noconflict-mode-in-wordpress/




jQueryのリファレンスを再確認してください。 それを複数回参照しているか、あまりにも早く(jQueryが定義される前に)関数を呼び出している可能性があります。 私のコメントで述べたように試してみて、ファイルの先頭に(頭の中に)jQueryリファレンスを置いて、それが役立つかどうか確認してください。

この場合、jQueryのカプセル化を使用すると助けにならないはずです。 私はそれがもっときれいだと思うので試してみてください。しかし、jQueryが定義されていないと、同じエラーが発生します。

最終的に... jQueryは現在定義されていません。







var $=jQuery.noConflict();

$(document).ready(function(){
    // jQuery code is in here
});

Ashwani PanwarとCyssooの回答: https://.com/a/29341144/3010027 ://.com/a/29341144/3010027




つかいます

jQuery(document).

の代わりに

$(document).

または

この関数の中で、$はjQueryを期待しています

(function ($) {
   $(document).
}(jQuery));



Related