0

我正在使用 dotnet.highcharts 在运行时创建图表:

结果,我使用 ajax 调用接收格式化的 html。这是我回来的:

<div id='bbb55283bfc3440a96c7ae26e130173f_container'></div><script type='text/javascript'>
var bbb55283bfc3440a96c7ae26e130173f;
function TestFunction() {
    bbb55283bfc3440a96c7ae26e130173f = new Highcharts.Chart({
        chart: { renderTo:'bbb55283bfc3440a96c7ae26e130173f_container', defaultSeriesType: 'line' }, 
        title: { text: 'Test' }, 
        xAxis: { categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'] }, 
        series: [{ data: [12, 23, 1, 9, 34, 54] }]
    });
}
</script>

现在我把它放在一个 div 元素中(其中数据是上面的片段):

$(myDiv).innerHtml = data;

接下来我需要调用函数TestFunction()

我怎样才能做到这一点?它像这样生活在 myDiv 中:

<div id="chartContainer" style="float:left">
    <div id="bbb55283bfc3440a96c7ae26e130173f_container"></div>
    <script type="text/javascript">
      var bbb55283bfc3440a96c7ae26e130173f;
      function TestFunction() {
        bbb55283bfc3440a96c7ae26e130173f = new Highcharts.Chart({
            chart: { renderTo: 'bbb55283bfc3440a96c7ae26e130173f_container', defaultSeriesType: 'line' },
            title: { text: 'Test' },
            xAxis: { categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'] },
            series: [{ data: [12, 23, 1, 9, 34, 54] }]
            });
      }
    </script>

4

1 回答 1

0

TestFunction不“住在里面div”。JavaScript 不是这种方式的标记的一部分。

一旦定义了函数:

function TestFunction() {
    // code
}

从那时起,它可以作为window对象的全局函数使用。因此,您可以从页面上的其他任何地方调用它:

TestFunction();

当然,如果这以任何div方式重复并且您假设divs 中的函数有某种命名空间,那么您会发现在实践中并非如此。如果函数在文档中的任何位置再次全局定义,那么第二个定义将简单地覆盖第一个定义。

于 2014-09-24T13:54:25.840 回答