Jquery ReferenceError :(函数名称)未定义

时间:2013-05-10 17:04:27

标签: javascript jquery

我有这段代码让我陷入困境几天我不明白为什么在我的控制台中说我的功能没有在这里定义代码。顺便说一句,我是jQuery的新手我真的没有太多的知识,所以任何帮助?谁能告诉我哪里出错了它给了我这个错误

  

(ReferenceError:未定义createGraph)

<!DOCTYPE html>
<html>
<head>
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>

        <script src="bin/js/raphael.js"></script>
        <script src="bin/js/popup.js"></script>
        <script src="bin/js/analytics.js"></script>
</head>
<body>

 <div class="action-button">
    <button id="1" value="1074">Button 1</button>
    <button id="2" value="1074">Button 2</button>
 </div>

  <div id="output"></div>

<script>
/////////////////////////////////////////////////////
// this script will check if the document is ready and will display data for button 1
     $(document).ready(function () {
    $("#1").trigger("click");
    });

    ///////////////////////////////////////////////////////////////////////////////////////
        $("button").click(function () {
          var attr = $(this).attr("id");
          var val = $(this).val();

          $.ajax({
          type: "POST",
          url: "bin/some.php",
          data: { lookbookID: val, type:attr  }
    }).done(function( html ) {
      $("#output").html(attr + ' - ' +  val + ' - ' + html );
        createGraph();

    });
});
</script>
</body>
</html>

和JS代码

window.onload = function () {
    function getAnchors(p1x, p1y, p2x, p2y, p3x, p3y) {
        var l1 = (p2x - p1x) / 2,
            l2 = (p3x - p2x) / 2,
            a = Math.atan((p2x - p1x) / Math.abs(p2y - p1y)),
            b = Math.atan((p3x - p2x) / Math.abs(p2y - p3y));
        a = p1y < p2y ? Math.PI - a : a;
        b = p3y < p2y ? Math.PI - b : b;
        var alpha = Math.PI / 2 - ((a + b) % (Math.PI * 2)) / 2,
            dx1 = l1 * Math.sin(alpha + a),
            dy1 = l1 * Math.cos(alpha + a),
            dx2 = l2 * Math.sin(alpha + b),
            dy2 = l2 * Math.cos(alpha + b);
        return {
            x1: p2x - dx1,
            y1: p2y + dy1,
            x2: p2x + dx2,
            y2: p2y + dy2
    };
}

    function createGraph() {
       // Grab the data
       alert("i made it!");
        var labels = [],
            data = [];
        $("#data tfoot th").each(function () {
        labels.push($(this).html());
        });
        $("#data tbody td").each(function () {
            data.push($(this).html());
        });

     }
    };

我更新了这个抱歉我排除了window.onload我仍然得到了引用错误,但是如果我将函数放在window.onload = function之外,那么我的函数是否可行,是否可以访问我的函数?我不知道如果我从windows.onload删除所述代码会发生什么我需要再次帮助:)

该函数的链接,以防它有任何帮助https://github.com/ksylvest/raphael-analytics

2 个答案:

答案 0 :(得分:2)

function createGraph() {
// Grab the data
    var labels = [],
        data = [];
    $("#data tfoot th").each(function () {
        labels.push($(this).html());
    });
    $("#data tbody td").each(function () {
        data.push($(this).html());
    });

   //code here i erased so it wont be too long and i just added this function so i could call it anyway this code is actually the code that creates the graph in raphael JS
 }

答案 1 :(得分:1)

createGraph不是一个全局函数,因为$()创建了一个新的上下文,createGraph成了局部变量,所以如果你试图调用它,就会出错。

所以从$()开始吧。

像楼上的代码..