我正在使用最新版本的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