スクリプトがロードされるとき、私はこのエラーを得ます:
TypeError: 'undefined'は関数ではありません( '$(document)'の評価)
それが何を引き起こしているのか、それが何を意味しているのか私にはわかりません。
Firebugでは、これが得られます。
$は関数ではありません
Wordpressはデフォルトで noConflict モードでjQueryを使用します。変数名として$
ではなくjQuery
を使用してそれを参照する必要があります。つかいます
jQuery(document);
の代わりに
$(document);
$
が再びjQueryを参照するように(そしてグローバル名前空間を汚染することも避けるように)、これを自己実行関数にまとめることができます。
(function ($) {
$(document);
}(jQuery));
JQueryの noConflict
を使用してください。それは私にとって不思議でした
var example=jQuery.noConflict();
example(function(){
example('div#rift_connect').click(function(){
example('span#resultado').text("Hello, dude!");
});
});
つまり、あなたのHTMLにjQueryが含まれていると仮定します。
<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
これを使って:
var $ =jQuery.noConflict();
この問題はChromeでしか見られませんでした。
追加してみた
var $ =jQuery.noConflict();
電話をかける直前
$(document).ready(function () {
出来た。
どうもありがとう
このスニペットを試してください:
jQuery(function($) {
// Your code.
})
それは私のために働いた、多分それはあなたにも役立つでしょう。
また、jQueryを含め、続いていくつかのコンポーネント/他のライブラリ(jQuery UIなど)を含め、次に誤ってjQueryを含めます。これによりjQueryが再定義され、インスタンスヘルパー(.datepickerなど)が削除されます。
;(function($){
// your code
})(jQuery);
上のクロージャーの中にあなたのjsコードを置いてください、それは問題を解決するべきです。
私はこれを使うだろう
(function ($) {
$(document);
}(jQuery));
私はまたWeb develoment carrierでそのような問題に何度も直面しました。実際にはそれはJSの競合ではありません、我々がブラウザにhtmlウェブサイトをロードするとき我々はそのようなエラーに直面しません、しかし我々がlocalhostを通してこれらのタイプのウェブサイトをロードするとき我々はそのような問題に直面します。これはlocalhostのせいです。 localhostを通してスクリプトをロードすると、スクリプトをスキャンして出力をレンダリングします。しかし、localhostを使わなかったとき。出力をスキャンするだけです。例えば、ローカルホストの横にphpコードを書き、ホストなしで実行するとエラーになります。しかし、コードが正しく、Hostを介して実行されている場合は実際の出力が得られ、inspect要素を使用するとHTMl形式ではあるがPHP形式ではない出力コードが得られます。
これはレンダリングエラーです。そのため、これらのjqueryコードのエラーを修正するための解決策の1つは、この方法を使用することです。
jQuery(document).ready(function($){
/******** Body of Jquery Code*****/
});
このコードがすることはjqueryを適用することによって関数への可変として '$'を登録することです。それ以外の場合、デフォルトでは.jsファイルはjavascriptとしてのみ読み取られます。
あなたはfunction()で$を渡すことができます
jQuery(document).ready(function($){
// jQuery code is in here
});
$(document);
をこのjQuery(document);
に置き換えることもできます。
あるいはjQuery.noConflict()
を使うこともできます
var jq=jQuery.noConflict();
jq(document).ready(function(){
jq('selector').show();
});
2つのこと
これの間にすべてのスクリプトをラップする...
<script>
$.noConflict();
jQuery( document ).ready(function( $ ) {
// Code that uses jQuery's $ can follow here.
});
</script>
JQueryのように、多くのJavaScriptライブラリは$を関数名または変数名として使用します。 jQueryの場合、$はjQueryの単なるエイリアスであるため、すべての機能は$を使用せずに利用できます。 jQueryと一緒に別のJavaScriptライブラリーを使用する必要がある場合は、 $。noConflict() を呼び出して$の制御を他のライブラリーに戻してください。 $の古い参照はjQueryの初期化中に保存されます。 noConflict()は単にそれらを復元します。
以下のスニペットではjQueryと$の両方を使用できます。それは私のために働いた
jQuery( document ).ready(function( $ ) {
// jQuery(document)
// $(document)
});
私は自分のページヘッダにjQueryを含めるときにもこの問題に遭遇しました、ホストがすでにそれを自動的にページに含んでいたことに気づいていませんでした。だからあなたのページをライブでロードしてjQueryがリンクされているかどうか見るためにソースをチェックする。