amCharts - 不在jQuery选项卡中显示

时间:2013-02-01 13:10:26

标签: javascript jquery tabs charts

我搜索了这个问题的解决方案,我来到了这个:http://blog.amcharts.com/2012/08/displaying-javascript-charts-in-tabs-or.html这似乎很容易。但是当我根据示例应用那段代码时,标签停止工作,我无法在它们之间切换。

在URL中,根据我点击的标签有一些变化,但内容不是切换,标签也不是。经过两天的搜索,我无法弄明白。我的代码的结构是这样的:

  1. 我的文件包含html代码,标签的JS代码(就像在amCharts网站上的示例中一样),以及从其他文件加载内容到标签的功能:

    $("#zalozka_kalkulace").click(function(){
        $("#detail_ceny_switch_ceny").addClass("open");
        $("#detail_ceny_switch_ceny").removeClass("rucka");
        $("#detail_ceny_switch_ceny").css({ 'height' : '478px', 'margin-bottom' : '-360px', 'margin-right' : '-475px', 'float' : 'left', 'top' : '-360px', 'width' : '871px' });
        if($("#detail_ceny_grafy_kalkulaci").html() == ""){
            $("#detail_ceny_grafy_kalkulaci").load('./safe/kalkulace_grafy_all.php?k_stupen=<? echo $k_stupen; ?>&k_polozka=<? echo $co; ?>',function(){
                $("#detail_ceny_grafy_kalkulaci").removeClass("hidden");
            });
        }else{
            $("#detail_ceny_grafy_kalkulaci").removeClass("hidden");
        }
    });
    
  2. 我有另一个文件,其中包含选项卡中显示的所有内容。这意味着应该显示图表的div,以及图表数据和图表本身的JS代码(就像在amCharts网站上的示例中一样)

  3. 你知道如何解决这个问题吗?我得到了那个例子中的所有内容(我复制了它)但只是分开了两个文件。

1 个答案:

答案 0 :(得分:1)

我认为它不会像那样起作用。通过jQuery.load加载的JavaScript代码无法执行。

解决方案是使用两个AJAX请求分别加载HTML和JavaScript部分:用于HTML的jQuery.load和用于JavaScript部分的jQuery.getScript。或者,更好的是,修改加载的脚本以包含HTML项目。

即:

在主脚本中:

$.getScript("./safe/kalkulace_grafy_all.php?k_stupen=<? echo $k_stupen; ?>&k_polozka=<? echo $co; ?>',function(){
  $("#detail_ceny_grafy_kalkulaci").removeClass("hidden");
});

在加载的脚本中:

$("#detail_ceny_grafy_kalkulaci").html('<div id="chartdiv"></div>');
var chart = new AmCharts.AmSerialChart();
....
chart.write("chartdiv");