17

JQuery 画像スライダーを作成しようとすると、このエラー メッセージが表示されます。

Uncaught ReferenceError:$ が定義されていません

これが私の新しいコーディングです(スクリプトをページのに移動したことに注意してください。これはAdobeによって提案されました。):

<!doctype html>
<html>

<head>
<meta charset="utf-8">
<title>Green Cold-Formed Steel | Home</title>
<style type="text/css">

body,td,th {
    font-family: Tahoma, Geneva, sans-serif;
    font-size: 10px;
    color: #000;
    text-align: left;
}
body {
    background-color: #999;
}
a:link {
    color: #999;
    text-decoration: none;
}
a:visited {
    text-decoration: none;
    color: #060;
}
a:hover {
    text-decoration: underline;
    color: #FFF;
}
a:active {
    text-decoration: none;
}
h1 {
    font-size: 14px;
    color: #060;
}
h2 {
    font-size: 12px;
    color: #999;
}
h3 {
    font-size: 9px;
    color: #FFF;
}
#next {
    background-image: url(Assets/slideshow/r_arrow.png);
    background-repeat: no-repeat;
    background-position: center center;
    display: block;
    float: right;
    height: 500px;
    width: 100px;
    position: relative;
    z-index: 99;
}
#slideshowwrapper {
    display: block;
    height: 500px;
    width: 1000px;
    margin: auto;
}
#container {
    background-color: #FFC;
    display: block;
    float: left;
    height: 500px;
    width: 1000px;
    overflow: auto;
}
#prev {
    background-image: url(Assets/slideshow/L_arrow.png);
    background-repeat: no-repeat;
    background-position: center center;
    display: block;
    float: left;
    height: 500px;
    width: 100px;
    position: relative;
    z-index: 99;
}
#slider {
    display: block;
    float: left;
    height: 500px;
    width: 1000px;
    overflow: hidden;
    position: absolute;
}
#NavBar {
    display: block;
    height: 50px;
    width: auto;
    position: relative;
    padding-bottom: 5px;
    float: none;
    vertical-align: middle;
}
</style>
</head>

<body bgcolor="#999999" text="#000000">

<table width="100%" height="583" border="0" cellspacing="0" cellpadding="0px">
  <tr>
    <th height="132" align="left" scope="col">&nbsp;</th>
    <th scope="col"><div class="spacer" id="spacer"></div>
      <div class="Header" id="header"><a href="index.html"><img src="Assets/Logo/GFCS_Logo_NoBckgnd.png" width="288" height="108" alt="GCFS"></a></div>
    <hr></th>
    <th scope="col">&nbsp;</th>
  </tr>
  <tr>
    <th width="5%" align="left" scope="col">&nbsp;</th>
    <td width="85%" align="left" valign="top" scope="col">
    <div class="Navigation Bar" id="NavBar"><img src="Assets/navigation/navbutton_static_green.png" width="100" height="50" alt="Navi_Home"> <img src="Assets/navigation/navbutton_static_green.png" width="100" height="50" alt="Navi_Solutions"> <img src="Assets/navigation/navbutton_down.png" width="100" height="50" alt="navi_down"></div>

    <div id="slideshowwrapper">
      <div id="container">
        <div class="controller" id="prev"></div>
        <div id="slider">
            <img src="Assets/slideshow/hyatt_apts.png" width="1000" height="500" alt=           "Hyatt Apartments">
            <img src="Assets/slideshow/mccommas.png" width="1000" height="500" alt="McCommas">
            <img src="Assets/slideshow/park_4200.png" width="1000" height="500" alt="Park 4200">
            <img src="Assets/slideshow/quail_run.png" width="1000" height="500" alt="Quail Run">
            <img src="Assets/slideshow/roofdale.png" width="1000" height="500" alt="Roofdale Roof">
            <img src="Assets/slideshow/tri_truss.png" width="1000" height="500"> </div>
        <div class="controller" id="next"></div>
      </div>
    </div></td>
    <th width="10%" scope="col">&nbsp;</th>
  </tr>
</table>
<p>&nbsp;</p>
<script type="text/javascript" src="JS/jquery-1.10.1.min.js"></script>
<script type="text/javascript" src="JS/jquery.cycle.all.js"></script>
<script>
$(function(){
        $('#slider').cycle({ 
        fx:     'scrollHorz', 
        speed:  'fast', 

        next:   '#next', 
        prev:   '#prev' 
    });
});
</script>
</body>
</html>

私の Web サイト (ローカル) の JS フォルダーへのフォルダー パスは次のようになります: C:\Users\Andrew\Desktop\GCFS\JS

私はコーディングの世界には不慣れですが、達成しようとしていることはかなり単純です。私が知る限り、準備ができている関数を用意する必要はなく、javascript は自動的に実行されるはずです。ご協力いただきありがとうございます!

コメントより

これを試したときも失敗しました

<title>Green Cold-Formed Steel | Home</title> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script src="JS/jquery.cycle.all.js"></script> 
<script type="text/javascript"> 
 $(function() {  
   $('#slider').cycle({ fx: 'scrollHorz', speed: 'fast', next: '#next', prev: '#prev' });
}); 
</script>
4

6 に答える 6

24

ソリューション:

1) Google CDN を使用して jQuery をロードする

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>

2) Cycle Plugin について私が知る限り、ほとんどのメソッドが jQuery 1.8+ で廃止されたため、jQuery v1.5-v1.7 と互換性があります。これが、ポイント 1 で Google CDN jquery の v1.5 を使用した理由です。cycle プラグインのほとんどの例では、jquery 1.5 を使用しています。

3) ブラウザのキャッシュをクリアします。ほとんどの場合、これが主な原因です。

4) 以下のコードを使用して、jquery のロードを確認してください。

if(typeof jQuery!=='undefined'){
    console.log('jQuery Loaded');
}
else{
    console.log('not loaded yet');
}

主な編集:

エラーの理由は非常に単純です。

jquery がロードされる前に、cycle メソッドを呼び出しました。

DOM準備完了でサイクルプラグインを呼び出します..

$(document).ready(function(){
    $('#slider').cycle({ 
        fx:     'scrollHorz', 
        speed:  'fast', 

        next:   '#next', 
        prev:   '#prev' 
    });  
});
于 2013-06-11T18:40:02.700 に答える
9

2号。

jQuery が正しく読み込まれていないようです。

通常、このエラーが表示されます

Uncaught ReferenceError:$ is not defined

jQuery がページに適切に含まれていなかった場合。

CDN の jQuery を使用してみてください。問題が解決するはずです

交換

<script src="JS/jquery-1.10.1.min.js"></script>

cdnのもので

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

注:ファイル システムからテストする場合はhttp:、上記の URL に を追加する必要があります。追加しないと失敗します。

次に、スクリプト ファイルはHTML. したがって、DOM Readyハンドラーにコードを含める必要があります。

$(function() {
    $('#slider').cycle({ 
        fx:     'scrollHorz', 
        speed:  'fast', 
        next:   '#next', 
        prev:   '#prev' 
    });
});

私の知る限り、div ID を作成したときに「Slider」が参照されました。

いいえそうではありません。スクリプトが body の直前に含まれている場合は、それを Ready ハンドラーで囲むことはできません。しかし、あなたの場合、それは頭の中にあります。そのため、スクリプトの実行が開始されたとき、その特定の要素はまだDOM

フィドルをチェック

于 2013-06-11T17:56:15.870 に答える
4

次の 2 つの問題が考えられます。

1) JQuery が正しくロードされていない可能性があります。Chrome を使用してテストできます。$ または jQuery を入力して、正しくロードされているかどうかを確認します。 Chrome コンソール

2) これは、他の JS ライブラリにバンドルされていた JQuery.js での私の経験に基づいています。$ はサポートされず、$ の代わりに jQuery を使用する必要があります。js ファイルの以下の行を確認してください。プロジェクトにロードしました。

window.jQuery = window.$ = jQuery;

http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.jsを使用してもうまくいかなかったことがわかりましたが、 http://code.jquery.com/jqueryを使用しました-1.7.2.min.js

以下は、私が編集したコードの唯一の部分であり、うまく機能し始めました。

<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
于 2013-06-11T18:12:14.293 に答える
0

私はこの問題を抱えていましたが、原因は上記のシナリオとは大きく異なっていました。私のサイトは、古い Android (2.2) を除いてどこでも機能していました。このデバイスは、code.jquery.com CDN で https 証明書を拒否していたことが判明したため、JQuery をロードしていませんでした。修正は、代わりに https Google CDN から JQuery リソースをロードすることでした (上記の他の人が指定した URL を使用)。

于 2016-02-15T18:49:52.657 に答える