Solrサーバーからjsonオブジェクトを取得するためにJqueryを使用しています。 Tomcatでhtmlファイルを実行すると正常に実行されますが、weblogicで実行しているプロジェクトにそれを埋め込むと、次のエラーが発生します:(firebugを介したデバッグ)
$ is not defined
$(document).ready(function(){
プロジェクトに埋め込んだときにこのエラーが発生するのはなぜですか?
これは私の<head>
タグの内容です。jquery.jsを含める方法です。
<head>
<title>Search Result </title>
<style>
img{ height: 150px; float: left; border: 3;}
div{font-size:10pt; margin-right:150px;
margin-left:150px; }
</style>
<script type="text/javascript" src="jquery-1.6.1.js"></script>
<script type="text/javascript">
$(document).ready(function(){ //Error happens here, $ is not defined.
});
</script>
</head>
JQueryをhead
セクションにロードしましたか?正しくロードしましたか?
<head>
<script src="scripts/jquery.js"></script>
...
</head>
このコードでは、jquery.js
はscripts
ディレクトリにあります。 (必要に応じてファイル名を変更できます)
JQueryを使用することもできます Googleがホスト :
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
...
</head>
どうやら、WebサーバーはjQuery-1.6.1.js
リクエスト時/webProject/jquery-1.6.1.js
。これには、間違ったファイル名、フォルダー名、ルーティング設定など、さまざまな理由が考えられます。別の質問を作成して404
詳細(ローカルファイル名、オペレーティングシステム、Webサーバー名、設定など)。
繰り返しになりますが、Googleが提供するjQueryを使用できます(上記を参照)が、一部のローカルファイルが要求に応じて提供されない理由を確認したい場合があります。
noConflict を時々使用する必要があることがわかりました。
_jQuery.noConflict()(function ($) { // this was missing for me
$(document).ready(function() {
other code here....
});
});
_
ドキュメントから:
多くのJavaScriptライブラリは、jQueryと同様に、関数名または変数名として$を使用します。 jQueryの場合、_
$
_はjQueryの単なるエイリアスであるため、_$
_を使用せずにすべての機能を使用できます。 jQueryと一緒に別のJavaScriptライブラリを使用する必要がある場合は、$.noConflict()
を呼び出して_$
_の制御を他のライブラリに戻します。 _$
_の古い参照は、jQueryの初期化中に保存されます。noConflict()
は単にそれらを復元します。
このエラーは、jQueryが正しくロードされていない場合にのみ表示されます。どのURLをロードしようとしているかをfirebugで確認して、相対パスが間違っているかどうかを確認できます。
また、別の注意事項として、$(function(){
を$(document).ready(function(){
の短縮形として使用できます。
Jqueryを参照するjsファイルがある場合は、jsファイルがheadセクションではなくbodyセクションにある可能性があります(これが私の問題でした)。 jquery.js参照の後、jsファイルをheadセクションに移動する必要があります。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.js"></script>
<script src="myfile.js" type="text/javascript"></script>
</head>
<body>
</body>
</html>
この問題が発生したのは、ページがhttpsとしてロードされている間に、http経由でjQueryをインクルードしようとしたためです。
Chromeでスクリプトと同じような問題が発生しました:
<script src="./scripts/jquery-1.12.3.min.js"></script>
<script src="./scripts/ol-3.15.1/ol.js" />
<script>
...
$(document).ready(function() {
...
});
...
</script>
に変更したとき:
<script src="./scripts/jquery-1.12.3.min.js"></script>
<script src="./scripts/ol-3.15.1/ol.js"></script>
$(document).readyが呼び出されました。
原因となっている可能性のあるjsパスを確認してください... jQueryが正しくロードされていない場合にのみこのエラーが発生するためです。
私は同じ問題を抱えています... http://www.xaluan.com ..しかし、ログの後。 jQueryの実行後に、存在しない1つの要素IDを使用して関数を作成することがわかります。
例えば:
$('#aaa').remove() <span class="aaa">sss</spam>
id="aaa"
が存在しませんでした。その後、jQueryは実行を停止します。
つかいます:
jQuery(document).ready(function($){
// code where you can use $ thanks to the parameter
});
またはその短いバージョン:
jQuery(function($){
// code where you can use $ thanks to the parameter
});