Jquery 没有图表时如何禁用“打印图表”按钮
我有以下代码Jquery 没有图表时如何禁用“打印图表”按钮,jquery,asp.net-mvc-4,highcharts,Jquery,Asp.net Mvc 4,Highcharts,我有以下代码 $.ajax({ url: '@Url.Action("CollectionsBySuburb", "DashBoard")', data: { Period: 2015 }, success: function (data) { var catArr = data.map(function (o) { return o.Category; }); var paidArr = data.
$.ajax({
url: '@Url.Action("CollectionsBySuburb", "DashBoard")',
data: { Period: 2015 },
success: function (data) {
var catArr = data.map(function (o) { return o.Category; });
var paidArr = data.map(function (o) { return parseInt(o.TotalTax + o.TotalArrears + o.TotalDiscount); });
var outArr = data.map(function (o) { return parseInt(o.TotalBillAmount - (o.TotalTax + o.TotalArrears + o.TotalDiscount)); });
$('#CollectionsBySuburb').highcharts({
chart: {
type: 'bar',
events: {
click: function () {
alert();
}
}
},
credits: {
enabled: false
},
colors: ["#62BD00", "#FA1B02"],
title: {
text: 'Amount Collection By Suburb'
},
xAxis: {
categories: catArr
},
yAxis: {
min: 0,
title: {
text: 'Amount ( '' )'
}
},
legend: {
reversed: true
},
plotOptions: {
series: {
stacking: 'normal'
}
},
tooltip: {
pointFormat: '<span style="color:{point.color}">{series.name}</span>: GH₵ <b>{point.y}</b>'
},
series: [{
name: 'Paid',
data: paidArr
}, {
name: 'Outstanding',
data: outArr
}]
});
}
});
$.ajax({
//Rendering other chart here
});
$.ajax({
//Rendering other chart here
});
$.ajax({
//Rendering other chart here
});
$.ajax({
//Rendering other chart here
});
$.ajax({
url:'@url.Action(“CollectionsBySuburb”,“DashBoard”),
数据:{期间:2015},
成功:功能(数据){
var catArr=data.map(函数(o){returno.Category;});
var paidArr=data.map(函数(o){return parseInt(o.TotalTax+o.total欠款+o.TotalDiscount);});
var outArr=data.map(函数(o){return parseInt(o.totalbillmount-(o.TotalTax+o.totallaughts+o.TotalDiscount));});
$(“#郊区收藏”)。高图表({
图表:{
类型:'bar',
活动:{
单击:函数(){
警惕();
}
}
},
学分:{
已启用:false
},
颜色:[“#62BD00”和“#FA1B02”],
标题:{
文本:“按郊区收取的金额”
},
xAxis:{
类别:卡塔
},
亚克斯:{
分:0,,
标题:{
文本:“金额(“”)”
}
},
图例:{
对
},
打印选项:{
系列:{
堆叠:“正常”
}
},
工具提示:{
pointFormat:“{series.name}:GH{point.y}”
},
系列:[{
姓名:“已付”,
数据:paidArr
}, {
名称:'杰出',
数据:输出
}]
});
}
});
$.ajax({
//在这里呈现其他图表
});
$.ajax({
//在这里呈现其他图表
});
$.ajax({
//在这里呈现其他图表
});
$.ajax({
//在这里呈现其他图表
});
所以现在我的要求是,因为我有多个图表,当我点击打印按钮时,我想检查一个图表是否存在,如果存在,然后启用选项,以便用户可以下载它,或者隐藏要下载的选项。我试着用不同的方法,但做不到。感谢您的帮助
您可以使用
出口:{
已启用:false
}
在highchart中构造函数
events: {
legendItemClick: function () {
var series = this.chart.series,
index = this.index,
allHidden = this.visible ? false : true;
$.each(series, function(i, serie){
if(serie.visible && i !== index)
allHidden = true;
});
if(!allHidden) {
this.chart.exportSVGElements[0].hide();
} else {
this.chart.exportSVGElements[0].show();
}
}
}
我不完全理解您的要求,因此我将演示不同的技术
exporting: {
enabled: data.length > 0 ? true : false
}
exporting: {
buttons: {
contextButton: {
menuItems: filterButtons(data)
}
}
请参见此处的代码:您可以捕获所有序列,然后对其进行迭代,以检查是否所有序列都被隐藏。如果是,则可以通过this.chart.exportSVGElements[0].hide()隐藏按钮代码>函数
events: {
legendItemClick: function () {
var series = this.chart.series,
index = this.index,
allHidden = this.visible ? false : true;
$.each(series, function(i, serie){
if(serie.visible && i !== index)
allHidden = true;
});
if(!allHidden) {
this.chart.exportSVGElements[0].hide();
} else {
this.chart.exportSVGElements[0].show();
}
}
}
示例:谢谢您的回答,这已接近我的要求。就像在小提琴中一样,如果我点击序列1,我可以看到图表正在消失。那么,现在如果我点击按钮打印,我想隐藏下载选项。你说的“点击系列1”是什么意思?按钮?对不起,我真的不明白。我的意思是当我点击标记为粗体的系列时,显示的下载选项应该隐藏起来。因为当我点击系列时,图表就消失了。我希望这有帮助。啊,好吧,我想我得到了你想要的。单击图例中的一个系列时,是否要触发按钮的更改?由于我现在时间不够,我还不能提供一个解决方案。但是,你必须把自己挂在“legendItemClick”上,看看这里的一个例子:这就是我所需要的。我正在寻找legendItemClick事件(根据larrydahooster的说法,也感谢他的帮助)来处理。我用另一种方法计算图表的数量,然后按下按钮并禁用它,即使这样也行。但这似乎更专业。谢谢。你能告诉我当我想打印图表时,如何隐藏同一个按钮吗。正如在预览中一样,当用户想要下载图表时,我也会得到要隐藏的按钮。对于导出的图表到图像,您可以在中设置此选项,但对于打印,您需要捕获菜单项,并在调用print()函数之前隐藏元素。例子: