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





7 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のグローバル$ショートカットは利用できません...

function 原因 uncaught

私はこのような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);

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

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




このような競合を避けることができます

var jq=jQuery.noConflict();
jq(document).ready(function(){  
  alert("Hi this will not conflict now");
  jq('selector').show();
});



var $=jQuery.noConflict();

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

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




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

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

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




(function( $ ) {
  "use strict";

  $(function() {

    //Your code here

  });

}(jQuery));



この問題は、関数名とファイル内のid名の1つが同じ場合に発生します。 ファイル内のすべてのID名が一意であることを確認してください。




$ signを次のようにjQuery置き換えます。

jQuery(function(){
//your code here
});



Related