Я использую последнюю версию jqPlot (v1.0.0b2_r1012) для построения моих гистограмм.jqPlot - Как поймать событие с двойным щелчком
Чтобы поймать одного события щелчка я использую «jqplotDataClick» следующим образом:
$('#myHistogram').bind('jqplotDataClick', function(ev, seriesIndex, pointIndex, data) {
// Do something
});
Можно ли поймать двойное событие щелчка вместо этого?
К сожалению, я не смог найти такое событие в jqplot.barRenderer.js.
Update:
Я сделал следующие два изменений в моем 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);
}
}
А потом я связываю jqplotDataDblClick в моем файле JavaScript следующим образом:
$('#myHistogram').bind('jqplotDataDblClick', function(ev, seriesIndex, pointIndex, data) {
alert("Ohayo!"); // Good morning in Japanese
});
Однако двойное событие щелчка doensn't уволят, когда я дважды щелкните на одном из моих вертикальных гистограмм. Я попытался привязать «jqplotRightClick», но это тоже не работает. Если я использую «jqplotClick», тогда все работает так, как ожидалось.
Кто-нибудь знает, что я делаю неправильно здесь?
Update 2:
RE: Я попытался связывание "jqplotRightClick", но это не работает. (Смотри выше)
Я только что узнал, что для того, чтобы поймать этого события вы должны установить следующее:
captureRightClick: true,
См: How to capture right click event
+1 Хороший один. BTW Как бы вы обслуживали это событие только для одного графика, а не для другого? – Boro
@Mark Спасибо за указатель. Я обновил свой первоначальный пост после еще нескольких исследований. Можете ли вы сказать мне, почему мой двойной клик не срабатывает? Я не понимаю, что я делаю неправильно. – jpen
@jpen см. Правки для ответа. – Mark