jQuery从外部文件加载函数


jQuery load function from external file

我在一个文件中放置了脚本,并通过load()函数从该文件中提取数据。但是脚本会被加载。

$( ".panel-default" ).html("<img class='loader' src='../catalog/kuko/loading.gif' />").load( "../catalog/kuko/embed.php .affil_wrap", function(){       
charting(); <- this doesn't get loaded      
} );

这是外部文件中的脚本,我从那里得到它:

// pie chart   
function charting(){
var pieData = [
                <?php               
                while ($row2 = mysqli_fetch_array($sqli2)) {                    
                echo    '{
                            value: '.$row2["total_clicks"].',
                            color: "#'.random_color().'",
                            highlight: "#333",
                            label: "' .$row2["name"].'"
                            },';
                }
                ?>
                ];
                var ctx = document.getElementById("chart-area").getContext("2d");
                window.myPie = new Chart(ctx).Pie(pieData);

                // line chart
        var lineChartData = {
            labels : [<?php echo implode(',',array_keys($res_array)) ?>],
            datasets : [                
                {
                    label: "Audience Overview",
                    fillColor : "#e6f4fa",
                    strokeColor : "#058dc7",
                    pointColor : "rgba(151,187,205,1)",
                    pointStrokeColor : "#fff",
                    pointHighlightFill : "#fff",
                    pointHighlightStroke : "rgba(151,187,205,1)",
                    data : [<?php echo implode(',', array_values($res_array)); ?>]
                }
            ]
        }
                var ctx = document.getElementById("canvas").getContext("2d");
                window.myLine = new Chart(ctx).Line(lineChartData, {
                    responsive: true
                });
}
charting();

使用getScript(),看看下面的代码是否适合您:

var container = $(".panel-default");
$(container).html("<img class='loader' src='../catalog/kuko/loading.gif' />");
$.getScript("../catalog/kuko/embed.php")
    .done(function( script, textStatus ) {
        charting(); // call the function once the script has been loaded and parsed
    })
    .fail(function( xhr, settings, exception ) {
        console.log(xhr.responseText);
        $(container).html("Error while loading.");
    });