加载页面上没有动作javascript

时间:2019-04-29 19:26:44

标签: javascript jquery

加载页面时,js必须显示默认值:month, 问题是未显示图形。 我必须单击月份以显示信息。

在我的ajax中,控制台查询字符串:range: month和此代码可识别范围。

  $group = HTML::sanitize($_GET['range']);

  if (empty($group)) {
    $group = 'month';
  }

 switch($group) {
 }

在允许显示图形的javascript代码(图libray)下方

谢谢

<script type="text/javascript">
$('#range a').on('click', function(e) {
    e.preventDefault();

    $(this).parent().parent().find('li').removeClass('active');

    $(this).parent().addClass('active');

    $.ajax({
        type: 'get',
        url: '{$link}?range=' + $(this).attr('href'),
        dataType: 'json',
        success: function(json) {
            if (typeof json['order'] == 'undefined') { return false; }

            var option = {  
                shadowSize: 0,
                colors: ['#9FD5F1', '#1065D2'],
                bars: { 
                    show: true,
                    fill: true,
                    lineWidth: 1
                },
                grid: {
                    backgroundColor: '#FFFFFF',
                    hoverable: true
                },
                points: {
                    show: false
                },
                xaxis: {
                    show: true,
                    ticks: json['xaxis']
                }
            }

            $.plot('#chart-sale', [json['order'], json['customer']], option);   

            $('#chart-sale').bind('plothover', function(event, pos, item) {
                $('.tooltip').remove();

                if (item) {
                    $('<div id="tooltip" class="tooltip top in"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + item.datapoint[1].toFixed(2) + '</div></div>').prependTo('body');

                    $('#tooltip').css({
                        position: 'absolute',
                        left: item.pageX - ($('#tooltip').outerWidth() / 2),
                        top: item.pageY - $('#tooltip').outerHeight(),
                        pointer: 'cusror'
                    }).fadeIn('slow');  

                    $('#chart-sale').css('cursor', 'pointer');      
                } else {
                    $('#chart-sale').css('cursor', 'auto');
                }
            });
        }
    });
});

$('#range .active a').trigger('click');
</script>

错误控制台:

uncaught TypeError: $.plot is not a function
    at Object.success (index.php:280)
    at c (jquery-3.4.0.min.js:2)
    at Object.fireWith [as resolveWith] (jquery-3.4.0.min.js:2)
    at l (jquery-3.4.0.min.js:2)
    at XMLHttpRequest.<anonymous> (jquery-3.4.0.min.js:2)

line:

        $.plot('#chart-sale', [json['order'], json['customer']], option);

1 个答案:

答案 0 :(得分:1)

我写答案只是为了关闭帖子(您可以在问题评论中看到讨论) 请记住,JavaScript未编译,因此每个表达式都是从上至下读取的。为了确保您的功能可以被解释器识别,您需要为脚本赋予正确的顺序。 无论如何,您都可以在windows.load = function(){<your_code>}用JavaScript或$(document).ready(function(){<your_code>})加载页面之后执行代码,如果您使用的是jQuery库。