我正在使用最新版本的jqPlot(v1.0.0b2_r1012)来绘制我的直方图。jqPlot - 如何捕捉双击事件
为了借助“jqplotDataClick”如下一个单一的点击事件我:
$('#myHistogram').bind('jqplotDataClick', function(ev, seriesIndex, pointIndex, data) {
// Do something
});
是否有可能赶上双击事件呢?
不幸的是,我一直无法在jqplot.barRenderer.js中找到这样的事件。
更新:
我做了以下两个更改我jqplot.barRenderer.js文件:
注册jqplotDblClick事件
$.jqplot.BarRenderer.prototype.init = function(options, plot) {
...
...
plot.postInitHooks.addOnce(postInit);
plot.postDrawHooks.addOnce(postPlotDraw);
plot.eventListenerHooks.addOnce('jqplotMouseMove', handleMove);
plot.eventListenerHooks.addOnce('jqplotMouseDown', handleMouseDown);
plot.eventListenerHooks.addOnce('jqplotMouseUp', handleMouseUp);
plot.eventListenerHooks.addOnce('jqplotClick', handleClick);
plot.eventListenerHooks.addOnce('jqplotDblClick', handleDblClick);
//$.jqplot.eventListenerHooks.push(['jqplotDblClick', handleDblClick]); I've also tried this but without any luck
plot.eventListenerHooks.addOnce('jqplotRightClick', handleRightClick);
};
实现handleDblClick功能
function handleDblClick(ev, gridpos, datapos, neighbor, plot) {
if (neighbor) {
var ins = [neighbor.seriesIndex, neighbor.pointIndex, neighbor.data];
var evt = jQuery.Event('jqplotDataDblClick');
evt.pageX = ev.pageX;
evt.pageY = ev.pageY;
plot.target.trigger(evt, ins);
}
}
然后我在JavaScript文件结合jqplotDataDblClick如下:
$('#myHistogram').bind('jqplotDataDblClick', function(ev, seriesIndex, pointIndex, data) {
alert("Ohayo!"); // Good morning in Japanese
});
然而,当我双击我的垂直条形图中的一个双击事件doensn't被解雇。我试过绑定“jqplotRightClick”,但这也不起作用。 如果我使用“jqplotClick”,那么一切都按预期工作。
有人知道我在做什么错吗?
更新2:
RE:我已经试过结合 “jqplotRightClick”,但也不起作用。 (见上文)
我刚刚发现,为了赶上这个活动,你必须设置如下:
captureRightClick: true,
参见:How to capture right click event
+1好的。顺便说一句,你如何为一个图表而不是另一个图表服务这个事件? – Boro
@Mark感谢您的指针。我在做了更多调查之后更新了我的初始帖子。你能告诉我为什么我的双击事件不会被解雇吗?我不知道我做错了什么。 – jpen
@jpen查看编辑回答。 – Mark