web-dev-qa-db-ja.com

参照されないReferenceError:$が定義されていませんか?

このコードはどうやって

参照されないReferenceError:$が定義されていません

以前は大丈夫でしたか。

$(document).ready(function() {
    $('#tabs > ul').tabs({ fx: { opacity: 'toggle' } });
    $('#featuredvid > ul').tabs();
});

タブの結果はもう閉じません。

jQueryはヘッダーで参照されています。

<script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/sprinkle.js"></script>
<script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/jquery-1.2.6.min.js"></script>
<script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/jquery-ui-personalized-1.5.2.packed.js"></script>
560
Olivers

最初にjqueryスクリプトへの参照を置くべきです。 

<script language="JavaScript" type="text/javascript" src="/js/jquery-1.2.6.min.js"></script>
<script language="JavaScript" type="text/javascript" src="/js/jquery-ui-personalized-1.5.2.packed.js"></script>
<script language="JavaScript" type="text/javascript" src="/js/sprinkle.js"></script>
605
Jeremy

JQuery JavaScriptが含まれる前に、ready関数を呼び出しています。最初にjQueryを参照してください。

187
Open Source

これは私にとってそれを解決したものです。もともと私はGoogleに行き、彼らのCDNページにjQueryのために彼らの提案されたスニペットをコピーして貼り付けました: 

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

このスニペットでは、src属性にHTTP:HTTPS:が含まれていませんでしたが、私のブラウザFireFoxでそれを必要としていたので、次のように変更しました。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

それから それは働いた。

96
Marlin Mixon

JQueryプラグインがブラウザにロードされる前にカスタムスクリプトがロードされると、この種の問題が発生する可能性があります。そのため、jQueryプラグインを呼び出した後は、必ず独自のJavaScriptコードまたはjQueryコードを保持してください。そのための解決策は次のとおりです。

まず、GoogleApisでホストされているjQueryファイル、または http://jquery.com/download/ からダウンロードするローカルのjQueryファイルへのリンクを追加して、サーバー上のHost:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

またはjQueryのための任意のプラグイン。次に、カスタムスクリプトファイルのリンクまたはコードを入力します。

<script src="js/custom.js" type="text/javascript"></script>
42
Jnanaranjan

私の場合は、jQueryスクリプトリンクの前に.jsファイルを配置し、jQueryスクリプトリンクの後に.jsファイルを配置することで問題が解決しました。

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="exponential.js"></script>
37
user2719890

さて、私の問題は異なっていた - それはChromeの中のDocument Securityモデルでした。

ここで答えを見てみると、$(document).ready()などの関数を呼び出す前に私がどういうわけか自分のjqueryファイルをロードしていなかったことは明らかでした。しかし、それらはすべて正しい位置にいました。

私の場合は、安全なHTTPS接続を介してコンテンツにアクセスしていたのに対し、ページはGoogleなどからCDNでホストされているデータをダウンロードしようとしていたためです。毎回CDN。

編集 :これを行うもう1つの方法は、http://ではなくhttps://としてすべてのCDNでホストされているものにリンクすることです - そうするとモデルは文句を言いません。

25

スクリプトを起動する前にライブラリを追加します。起動するには、次の _ cdn _ を追加します。

グーグル:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

マイクロソフト

<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.min.js"></script>

Jquery

他のJquery CDNバージョンが必要な場合は、この link を確認してください。

この後:

<script type="text/javascript">
$(function(){
    //your stuff
});
or
$(document).ready(function(){
    //your stuff
});    
</script>

ワードプレス:

<script type="text/javascript">
var $ = jQuery;
jQuery(document).ready(function($){
     //your stuff
});
</script>
23
lalithkumar

ワードプレスの場合は、変更する必要があるかもしれません 

$(document).ready(function() {

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

または追加

var $ = jQuery;

$(document).ready(function() {
19
xoxn-- 1'w3k4n

私はまったく同じ問題を抱えていましたが、上記の解決策はどれも役に立ちませんでした。ただし、.cssファイルの後に.jsファイルをリンクしただけで、問題は奇跡的に消えました。お役に立てれば。

15
crowicked

私の場合、スクリプト呼び出しの順序が間違っていたので、このreferenceErrorを使用しました。順序を変更することでそれを解決しました:

<script src="js/index.js"></script>
<script src="js/jquery-1.10.2.js"></script>

<script src="js/jquery-1.10.2.js"></script>
<script src="js/index.js"></script>
13
Yannis Dran

私はおそらく私のような問題を抱えていたが、とにかくそれを置く病気をした唯一の人です。私は自分のスクリプトを 非同期に それを楽しむためだけにしようとしました。それから私はそれを忘れて、私がライブになったとき[カスタム] .jsファイルはjQuery.jsの前に時間の50%しかロードしませんでした。

だから私は変わった 

<script async src="js/script.js"></script>

に 

<script src="js/script.js"></script>

:)

12
Sindri Þór

.Netでこれを実行していて、スクリプトファイルが正しく参照されていて、jQueryが問題ないようであれば、ユーザーがスクリプトファイルにアクセスできることを確認してください。私が取り組んでいたプロジェクト(同僚)は、彼らのweb.configが匿名ユーザーへのアクセスを拒否していました。私が取り組んでいたページは匿名ユーザーにとってアクセス可能だったので、彼らはスクリプトファイルにアクセスできませんでした。以下をweb.configに追加しましたが、すべて問題ありませんでした。

  <location path="Scripts">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
6
peroija

これは以前に私に起こりました。 

その理由は、私はAndroidをJSでWebビューに接続しているからです。そして私は引用符なしでパラメータを送りました。

js.sayHello(hello);

そして私がそれをに変えた時 

js.sayHello('hello');

出来た。

5
Reinherd

ソースファイルjquery-1.2.6.min.jsはjQueryコマンドと呼ばれない$()<..src='jquery-1.2.6.min.js'>より前に実行されます。

最初に<.. src="/js/jquery-1.2.6.min.js..">を実行し、srcパスが正しいことを確認してからjqueryコマンドを実行してください。

$(document).ready(function() 
5
charles hsu

私の場合、それはタイプミスでした、私はバックスラッシュを忘れていて、間違ってソースを参照していました。

src="/scripts/jquery.js"の前

src="scripts/jquery.js"の後

4
Dennis

JavaScriptファイルが見つからないため、このエラーが発生しました。 JavaScriptファイルを<head>タグ内に追加するだけです。例を見てください。

<script src="js/sample.js" type="text/javascript"></script>
<link href="css/sample.css" rel="stylesheet" type="text/css" />

または、tagに次のコードを追加してください。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
4
Gaurav Gupta

次の2つのシナリオでもエラーが発生します。

  1. @section scripts要素がHTMLファイルにありません 
  2. DOM要素へのアクセス中にエラーが発生しました。たとえば、DOM要素へのアクセスは、$( "。js-toggle")ではなく$( "js-toggle")と呼ばれます。実際には期間がありません

したがって、従うべき3つのこと - 必要なスクリプトが追加されていることを確認し、それが必要な順序で追加されているかどうかを確認してください。

やあ!タグ内に引用符が混在しているため、jqueryの参照が壊れています。 Chromeで検査を行うことで、ファイルが正しくリンクされていないことを確認できました。

3
justreed

私の場合、私はこれを含めるのを忘れていました:

 <script src ="jquery-2.1.1.js"></script>

以前私はこのエラーを引き起こしていたjquery-mobileだけを含めていました。

3
Anand

わかりました私はこれが私に一度起こった本当に愚かな事であったことを認めます。 scriptタグを修正して正しい内容を指すようにし、スクリプトの順序をエディタで正しい順序に変更しました…しかし、変更を保存するのを完全に忘れていました。問題が発生する可能性があります。 

3
Hexodus
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="local_xxx.js"></script>

私は似たような問題を抱えています、そしてあなたは何を知っています、それは ネットワークが切断されているため 。それはばかげているように見えますが、それを理解するために私の〜1時間を無駄にします。

2
林果皞

私は似たような問題を抱えていましたが、それはスタイルシートのリンクにクロージング>が欠けていたためです。

2
jason

私は同じ問題を抱えていた、そして私は私のコードの中にあるすべてのジャバスクリプトコードのトップにjQueryを置くことによって解決した。

このようなもの:

<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<script src="js/app.js" type="text/javascript"></script>
<script src="js/form.js" type="text/javascript"></script>
<script src="js/create.js" type="text/javascript"></script>
<script src="js/tween.js" type="text/javascript"></script>

希望は将来的に誰かを助けることができます。

1
user9964622

不思議なことに、私の問題はPHPから来ていました。

REST AP​​I呼び出しが失敗し、その後のライブラリのロードが中断されました。失敗はREST呼び出しからのものなので、phpのコンパイルエラーにはなりませんでした。

Jqueryをロードしても問題ない場合は、これをオプションとしても保持してください。

1
Aris

JQuery JavaScriptが含まれる前に、ready関数を呼び出しています。最初にjQueryを参照してください。

ASP.NET MVCを使用している場合は、次のようにしてJSコードをいつレンダリングするかを指定できます。 

1、 あなたのpage.cshtmlの中で、あなたの<script>タグをセクションにラップし、名前を付けてください。使用する一般的な名前は 'scripts'です。

@section scripts {
    <script>
        // JS code...
    </script>
}

2、 あなたの_Layout.cshtmlページに@RenderSection("Scripts", required: false)を追加し、Jqueryソースを参照した後にそれを置くことを確認してください。これはあなたのJSコードがJqueryより遅くレンダリングされるようにします。 

1
Mayer Spitzer

モバイルホットスポットでインターネットを閲覧していたときに、この問題が発生しました。画像を圧縮していて、bodyタグの下に次のスクリプトを追加しました。 

<script language="javascript"><!--
bmi_SafeAddOnload(bmi_load,"bmi_orig_img");//-->
</script>

私は適切な無線LAN接続に接続したとき、すべてが私のために見つけるのに動作するようです。これが誰かに役立つことを願っています。

1
bubb

ネットワークの問題がある場合、これも発生する可能性があります。つまり、「jqueryスクリプト」は適切に配置されていて、使用前に含まれていますが、jqueryスクリプトはページのロード時にアクセスできないため、「$」の定義は次のように扱われます。 「未定義の参照」.

テスト用/デバッグ目的:: あなたは、ブラウザで "jquery-script" URLにアクセスすることを試みることができます。それがアクセス可能であれば、あなたのページは適切にロードされるべきです、そうでなければそれは言われたエラー(あるいは他のスクリプト関連のエラー)を示すでしょう。例 - http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js は、ブラウザ(またはブラウザコンテキストスタンス)上でアクセス可能であるべきです。

私は私のwindowsホストブラウザで(スクリプトを使用して)htmlページをロードすることができたが、vm-ubuntuでロードすることができなかったという同様の問題を抱えていました。ネットワークの問題を解決し、問題を解決しました。

1
parasrish

私は同様の問題を抱えていました。私のテストサーバーは "http"でうまく動いていました。しかしSSLを持っていた本番に失敗しました。

したがって、プロダクションでは、「HTTP」の代わりに「HTPPS」を追加しました。テストでは、「HTTP」のままにしました。

テスト:

wp_register_script( 'jquery'、 ' http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js '、array()、null、false);

wp_register_script( 'custom-script'、plugins_url( '/js/custom.js'、 _ file _ )、array( 'jquery'));

製造:

wp_register_script( 'jquery'、 ' https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js '、array()、null、false);

wp_register_script( 'custom-script'、plugins_url( '/js/custom.js'、 _ file _ )、array( 'jquery'));

これがワードプレスに取り組んでいる人に役立つことを願っています。

1
user3671115
var $ = jQuery;
jQuery(document).ready(function($){
1
Jayanit Satani

根本的な問題はReferenceErrorです。 MDNは、 - try/catchブロックがそのジョブに適したツールであることを示します。私の場合は、支払いsdk/libraryの参照エラーが見つかりませんでした。以下は私のために働きます。

try {
  var stripe = Stripe('pk_test_---------');
} catch (e) {
    stripe = null;
}

if(stripe){
  //we are good to go now
}

明らかに修正はどんなSDK /ライブラリでもロードすることです。 jQueryは、そのメソッドを呼び出す前にtry/catchを使用すると、使用するライブラリがページのサブセットにロードされないページでその共有スクリプトを実行した場合に、共有JavaScriptがエラーを起こさないようにします。

0
Ron Royston

あなたはjQueryライブラリを参照していません。 

HTMLにこのような行を含める必要があります。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
0
asghar

私の場合、この問題はWindows Server Role Serviceの「静的コンテンツ」をインストールした後に解決されました。 (OS:Windows Server 2008 R2)

'静的コンテンツ'サーバーの役割サービスをインストールする方法:

  • (「Webサーバー」ロールがすでにインストールされていると仮定します)>サーバーマネージャーを実行します。左ペインの「ロール」をクリックし、右ペインの「Webサーバー」エリアで「ロールサービスの追加」をクリックします。 Webサーバー/一般的なHTTP機能」>「次へ」をクリック>.
0
김성훈