5

履歴情報を取得するために、以下のコードを使用してみました。Chromeデバッガーはそれを言いますUncaught ReferenceError: $ is not defined。修正を提案できますか、私は本当に立ち往生しています。Chromeで動作するためにこれが必要なだけで、YQLとYahooAPIを利用しています。

これがjsFiddleですhttp://jsfiddle.net/pCK5q/1/

<html>
  <head>      
    <script type='text/javascript' src='http://www.google.com/jsapi'></script>
    <script type='text/javascript'>
      google.load('visualization', '1', {'packages':['annotatedtimeline']});
      google.setOnLoadCallback(drawChart);
      function drawChart() {
        var data = new google.visualization.DataTable();

        /* historical data code that breaks */
        var url = 'http://query.yahooapis.com/v1/public/yql';
        var startDate = '2012-01-01';
        var endDate = '2012-01-08';
        var jsonData = encodeURIComponent('select * from yahoo.finance.historicaldata where symbol in ("YHOO","AAPL","GOOG","MSFT") and startDate = "' + startDate + '" and endDate = "' + endDate + '"');
        $.getJSON(url, 'q=' + data + "&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json", callback);

        data.addColumn('date', 'Date');
        data.addColumn('number', 'Sold Pencils');
        data.addColumn('string', 'title1');
        data.addColumn('string', 'text1');

        data.addColumn('number', 'Sold Pens');
        data.addColumn('string', 'title2');
        data.addColumn('string', 'text2');      // not on the fly


        data.addRows([
          [new Date(2008, 1 ,1), 30000, undefined, undefined, 40645, undefined, undefined],
          [new Date(2008, 1 ,2), 14045, undefined, undefined, 20374, undefined, undefined],
          [new Date(2008, 1 ,3), 55022, undefined, undefined, 50766, undefined, undefined],
          [new Date(2008, 1 ,4), 75284, undefined, undefined, 14334, 'Out of Stock','Ran out of stock on pens at 4pm'],
          [new Date(2008, 1 ,5), 41476, 'Bought Pens','Bought 200k pens', 66467, undefined, undefined],
          [new Date(2008, 1 ,6), 33322, undefined, undefined, 39463, undefined, undefined]
        ]);

        var chart = new google.visualization.AnnotatedTimeLine(document.getElementById('chart_div'));
        chart.draw(data, {displayAnnotations: true});
      }
    </script>
  </head>

  <body>
    // Note how you must specify the size of the container element explicitly!
    <div id='chart_div' style='width: 700px; height: 240px;'></div>

  </body>
4

3 に答える 3

5

スクリプトの前にJQueryソースへの参照を追加するだけです。

<script src="http://code.jquery.com/jquery.min.js"></script>
于 2012-11-20T21:01:31.493 に答える
3

次の行を追加します。

google.load("jquery", "1.7.1");

このすぐ下にあなたはすでに持っています:

google.load('visualization', '1', {'packages':['annotatedtimeline']});

これにより、すでに使用しているGooglejsapiからjQueryが読み込まれます。これは、コードに関する最良の解決策です。

于 2012-11-20T21:02:52.373 に答える
1

jQuery参照を追加してみてください:

<head>      
    <script type='text/javascript' src='http://code.jquery.com/jquery-1.8.3.min.js'></script>
    <script type='text/javascript' src='http://www.google.com/jsapi'></script>
    <script type='text/javascript'>

または(ただし、読み込み関数でjQueryを呼び出しているため、これは機能しないと思います。したがって、最初の方法の方がおそらく優れています)

使用しているJSAPIGoogleローダーを介して追加します。

<head>      
    <script type='text/javascript' src='http://www.google.com/jsapi'></script>
    <script type='text/javascript'>
        google.load('visualization', '1', {'packages':['annotatedtimeline']});
        google.load("jquery", "1.8.3"); // note, you can also load jQueryUI this way,

//別の注意点として、Googleがサポートするバージョンの高さがわからない詳細については、 HostedLibs
参照してください

于 2012-11-20T21:02:26.593 に答える