我搜索了这个问题的解决方案,我来到了这个:http://blog.amcharts.com/2012/08/displaying-javascript-charts-in-tabs-or.html这似乎很容易。但是当我根据示例应用那段代码时,标签停止工作,我无法在它们之间切换。
在URL中,根据我点击的标签有一些变化,但内容不是切换,标签也不是。经过两天的搜索,我无法弄明白。我的代码的结构是这样的:
我的文件包含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");
}
});
我有另一个文件,其中包含选项卡中显示的所有内容。这意味着应该显示图表的div,以及图表数据和图表本身的JS代码(就像在amCharts网站上的示例中一样)
你知道如何解决这个问题吗?我得到了那个例子中的所有内容(我复制了它)但只是分开了两个文件。
答案 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");