创建jquery第一个插件referenceError函数未定义

时间:2013-10-17 19:46:02

标签: jquery plugins

您好我已经按照有关创建Jquery插件的教程,我希望这样做,因为我的页面变得非常大,使用jquery代码,我想整理它并构建它更好一点。我收到错误ReferenceError:myGauge未定义。

这是我的页面

<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Highcharts Example</title>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script>
            <script src="http://code.highcharts.com/highcharts.js"></script>
            <script src="http://code.highcharts.com/highcharts-more.js"></script>
            <script src="http://code.highcharts.com/modules/exporting.js"></script>
            <script src="js/myFunction.js"></script>               
<script type="text/javascript">
$(document).ready(function(){
$(function () {
myGauge();
});
});
</script>
</head>
<body>
<div id="container" style="min-width: 310px; max-width: 400px; height: 300px; margin: 0 auto"></div>
</body>
</html>

这里是myFunction.js

 (function($) {

$.fn.myGauge = function() {

    $('#container').highcharts({

    chart: {
        type: 'gauge',
        alignTicks: false,
        plotBackgroundColor: null,
        plotBackgroundImage: null,
        plotBorderWidth: 0,
        plotShadow: false
    },

    title: {
        text: 'test'
    },

    pane: {
        startAngle: -150,
        endAngle: 150
    },          

    yAxis: [{
        min: 0,
        max: 200,
        lineColor: '#339',
        tickColor: '#339',
        minorTickColor: '#339',
        offset: -25,
        lineWidth: 2,
        labels: {
            distance: -20,
            rotation: 'auto'
        },
        tickLength: 5,
        minorTickLength: 5,
        endOnTick: false
    }, {
        min: 0,
        max: 124,
        tickPosition: 'outside',
        lineColor: '#933',
        lineWidth: 2,
        minorTickPosition: 'outside',
        tickColor: '#933',
        minorTickColor: '#933',
        tickLength: 5,
        minorTickLength: 5,
        labels: {
            distance: 12,
            rotation: 'auto'
        },
        offset: -20,
        endOnTick: false
    }],

    series: [{
        name: 'Speed',
        data: [80],
        dataLabels: {
            formatter: function () {
                var kmh = this.y,
                    mph = Math.round(kmh * 0.621);
                return '<span style="color:#339">'+ kmh + ' km/h</span><br/>' +
                    '<span style="color:#933">' + mph + ' mph</span>';
            },
            backgroundColor: {
                linearGradient: {
                    x1: 0,
                    y1: 0,
                    x2: 0,
                    y2: 1
                },
                stops: [
                    [0, '#DDD'],
                    [1, '#FFF']
                ]
            }
        },
        tooltip: {
            valueSuffix: ' km/h'
        }
    }]

},
// Add some life
function(chart) {
    setInterval(function() {
        var point = chart.series[0].points[0],
            newVal, inc = Math.round((Math.random() - 0.5) * 20);

        newVal = point.y + inc;
        if (newVal < 0 || newVal > 200) {
            newVal = point.y - inc;
        }

        point.update(100);//(newVal);

    }, 3000);

});

 }

 }(jQuery));

1 个答案:

答案 0 :(得分:0)

您不能按原样拨打myGauge()

由于您已将其转换为jQuery插件,因此您需要在其前面加上jQuery对象。
例如,$("#test").myGauge()