饼图单选多选问题

各位牛人好:
现在饼图按照Ctrl 或者 Shift 就可以多选饼图中的快,请问怎么样调成单选,就是好像平常用鼠标点一个块,其他收起来,现在Ctrl 或者 Shift 按照旧选多个,现在需要单选
piechar.jpg
已邀请:

john - 个人微博:http://weibo.com/u/2175683160

赞同来自:

两种方式
 
1、在扇区(对应的是点,Point)的点击事件里做判断,具体的判断逻辑是判断是否已经有选中的点并对选中的点进行取消选择操作
 
关键部分代码是:
1)获取选中的点
chart.getSelectedPoints();
2)对点进行取消选择操作
Point.select(false);

 
最终结果见:http://code.hcharts.cn/hcharts.cn/hhhGsl
 
 
2、修改源码,去掉 ctrl、shift 按钮的功能
 
具体是修改 Point.firePointEvent 函数,修改的内容是将  “point.select(null, event.ctrlKey || event.metaKey || event.shiftKey);” 修改为 “point.select(null);”
具体代码是(直接将下面的代码放在页面上就行了):
Point.prototype.firePointEvent = function(eventType, eventArgs, defaultFunction) {
var point = this,
series = this.series,
seriesOptions = series.options;

// load event handlers on demand to save time on mouseover/out
if (seriesOptions.point.events[eventType] || (point.options && point.options.events && point.options.events[eventType])) {
this.importEvents();
}

// add default handler if in selection mode
if (eventType === 'click' && seriesOptions.allowPointSelect) {
defaultFunction = function(event) {
// Control key is for Windows, meta (= Cmd key) for Mac, Shift for Opera
if (point.select) { // Could be destroyed by prior event handlers (#2911)

// 将这行换成 point.select(null);
//point.select(null, event.ctrlKey || event.metaKey || event.shiftKey);
point.select(null);
}
};
}

fireEvent(this, eventType, eventArgs, defaultFunction);

}

jsbome - 个人博客:http://highcharts.daxueba.net

赞同来自:

说个简单办法,你可以在图例区添加一个复选框。这样就可以复选了。并且这是Highcharts默认提供的。

要回复问题请先登录注册