我正在使用morris.js绘制图表,我想通过bootstrap carousel显示这些图表,但是如果我这样做,Firefox会停止响应。它们可以单独工作,但如果放在一起会崩溃。萤火虫告诉我拉斐尔图书馆有什么关系,但我还是想不通。那里的任何人遇到了类似的问题并知道如何解决这个问题?感谢。
这是我的代码的一部分。
<div id="myCarousel" class="carousel slide">
<ol class="carousel-indicators">
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
<li data-target="#myCarousel" data-slide-to="1"></li>
<li data-target="#myCarousel" data-slide-to="2"></li>
</ol>
<!-- Carousel items -->
<div class="carousel-inner">
<div class="active item">
<div id="A-lineChart" style="height:250px;"></div>
</div>
<div class="item">
<div id="B-lineChart" style="height:250px;"></div>
</div>
<div class="item">
<div id="C-lineChart" style="height:250px;"></div>
</div>
</div>
<!-- Carousel nav -->
<a class="carousel-control left" href="#myCarousel" data-slide="prev">‹</a>
<a class="carousel-control right" href="#myCarousel" data-slide="next">›</a>
</div>
<script>
$('.carousel').carousel({
interval: 1000
});
$.post('/my/handler.json',{
parameter:value},
function(data){
if(data.hasOwnProperty('error')){
alert('error');
}
else{
var r = data['results']
var AData = new Array();
var BData = new Array();
var CData = new Array();
for(var i = 0; i < r.length; i++){
d = r[i];
col = {'date':date, 'A': A};
AData.push(col);
col = {'date':date, 'B': B};
BData.push(col);
col = {'date':date, 'C': C};
CData.push(col);
}
new Morris.Line({
element: 'A-lineChart',
data: AData,
xkey: 'date',
ykeys: ['A'],
labels: ['A']
});
new Morris.Line({
element: 'B-lineChart',
data:BData,
xkey:'date',
ykeys:['B'],
labels:['B']
});
new Morris.Line({
element: 'C-lineChart',
data:CData,
xkey:'date',
ykeys:['C'],
labels:['C']
});
}
});
</script>
答案 0 :(得分:1)
这与使用标签时的问题相同。我假设第一个图表显示出来(如果没有,你可能有多个问题),但是一旦在旋转木马中被调用它们之后没有任何图形呈现。图表是在document.ready上绘制的,但由于它们位于旋转木马中,因此它们不会被绘制,因为它们是显示的:在被调用之前没有。
这已在another thread中解决。
您必须将使用.redraw()
的函数组合在一起。请参阅此处的工作小提琴:http://jsfiddle.net/b3rgstrom/vbfzr/
您应该能够根据您在我提供的资源中找到的内容拼凑出一些东西。我希望这有帮助!
答案 1 :(得分:0)
这不是完美的解决方案,但这会奏效。将活动班级插入
<div class="item active" id="graphElemnt>
然后删除该课程&#34;激活&#34;
<script type="text/javascript">
$(document).ready(function () {
setTimeout(function () {
$('#graphElemnt').removeClass("active");
//your code to be executed after 1 seconds
}, 5000);
})
</script>
仅为一个项目保留活动类,从其余项目中删除该类。