我尝试使用jqplot来创建可以单击的条形图,然后将用户重定向到另一个页面以及标签值作为url参数,但是没有运气来建立链接。这就是我所做的。
$(document).ready(function() {
$.jqplot.config.enablePlugins = true;
var ticks = [ 'SCAN', 'SGON', 'TERM', 'TRAN'];
var arrBranchId = ['08270K08001', '08298K08003', '12026K12003','14123K14003'];
var plot1 = $.jqplot('chart1',[[0,0,0,1],[2,4,2,5],[0,0,0,1],[0,5,0,1]], {
seriesDefaults: {
renderer: $.jqplot.BarRenderer,
rendererOptions: { fillToZero: true },
pointLabels: { show: true }
},
series: [{label:'08270K08001'},{label:'08298K08003'},{label:'12026K12003'},{label:'14123K14003'}],
legend: {
show: true,
placement: 'ne'
},
highlighter: {
show: false,
},
cursor: {
show: true
},
axes: {
xaxis: {
renderer: $.jqplot.CategoryAxisRenderer,
ticks: ticks
},
yaxis: {
renderer: $.jqplot.CategoryAxisRenderer,
pad: 1.05,
tickOptions: { formatString: '%d' }
}
}
});
});
还尝试了这个How to catch the click event from the axis ticks jqplot, highcharts,flot,将功能改为
$('.jqplot-xaxis-tick').each(function(){
var label = $(this),
value = label.text();
if(categoryLinks[value]) {
label.click(function(){
alert('could link to another page: ' + categoryLinks[value]);
});
}
});
但是用户点击时会发生这种情况。我错过了什么吗? 提前致谢
答案 0 :(得分:2)
我找到了一种方法,可以使用window.location使条形图可点击并链接到另一个页面,如下所示
$('#chart1').bind('jqplotDataClick',function(ev, seriesIndex, pointIndex, data){
window.location = 'branchDetails.aspx?appId='+ticks[**pointIndex**]+"&branchId="+arrBranchId[**seriesIndex**];
});
注意:数组ticks []和arrBranchId []已在$(document).ready(function(){.....}中定义。所以我只是通过 pointIndex 和 seriesIndex 。非常感谢大家
答案 1 :(得分:2)
我不确定您是否还在寻找解决方案,但我在研究同样的问题时发现了您的问题。我只是弄清楚如何让它发挥作用。根据您的代码,您应该添加如下函数:
$('#Chart1').bind('jqplotDataClick', function (ev, seriesIndex, pointIndex, data) {
window.parent.location.href = 'YOURURL.aspx?id=' + arrBranchId[pointIndex];
});
希望这会对你或其他人有所帮助。
答案 2 :(得分:1)
删除每个循环并使用jqplot绑定方法jqplotDataClick:
// replace chart1 with your div ID
$('#chart1').bind('jqplotDataClick',
function (ev, seriesIndex, pointIndex, data) {
// data contains the data point value, play with it
// NOTE it may contain an array and not a string
alert(data);
});
在上面的例子中我使用alert(数据)你可以使用数据值 做任何其他事情,即将用户重定向到包含该值的URL 作为参数传递
答案 3 :(得分:0)
您可以使用此代码段来获取点击事件!
// Bind a listener to the "jqplotDataClick" event. Here, simply change
// the text of the info3 element to show what series and ponit were
// clicked along with the data for that point.
$('#chart3').bind('jqplotDataClick',
function (ev, seriesIndex, pointIndex, data) {alert('clicked')
$('#info3').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
}
);
查看此演示JSFIDDLE
答案 4 :(得分:0)
我发现了一种更简单的方法.. 保持简单:
$('#chart3').bind('jqplotDataClick',
function (ev, seriesIndex, pointIndex, data) {
/* To open in a NEW window use: */
/* window.open(data[2]); */
/* To open in the same window use: */
window.location.href='ErrorView3.php';
}
);