在innerHtml中添加并在运行时调用javascript函数

时间:2014-09-24 13:49:48

标签: javascript jquery dotnethighcharts

我使用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>

1 个答案:

答案 0 :(得分:0)

TestFunction并不住在div&#34;内。 JavaScript不以这种方式成为标记的一部分。

定义函数后:

function TestFunction() {
    // code
}

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

TestFunction();

当然,如果div以任何方式重复并且您在div s内假设某种功能的命名空间,那么您&#39 ;发现在实践中并非如此。如果函数在文档中的任何位置全局定义 ,那么第二个定义将只覆盖第一个定义。