是否可以使用Plotly.js繪製條形圖的類別標籤(xticks)上的單擊事件?我知道它有可能獲得實際酒吧的點擊事件,但我正在尋找酒吧下類別標籤上的點擊事件。在下面的圖片中,我正在尋找'長頸鹿'上的點擊事件。 感謝您的幫助提前。 Plotly.js - 在條形圖的類別標籤上點擊事件
0
A
回答
0
目前在類別標籤上沒有點擊事件。
0
在此評論https://github.com/plotly/plotly.js/issues/65#issuecomment-350672387
我給出一個解決辦法,因爲現在有滿足你的要求沒有原生的方式。
這是Angular的代碼(但它可以很容易地適應香草JS)。
import * as d3 from 'd3';
export class AngularCustomComponent {
// contructor and other methods here..
plotlyClickEvents() {
/**
* Distinguish between single and double click
* @see http://bl.ocks.org/ropeladder/83915942ac42f17c087a82001418f2ee
*/
function clickcancel() {
let dispatcher = d3.dispatch('click', 'dblclick');
function cc(selection) {
let down, tolerance = 5, last, wait = null, args;
// euclidean distance
function dist(a, b) {
return Math.sqrt(Math.pow(a[0] - b[0], 2) + Math.pow(a[1] - b[1], 2));
}
selection.on('mousedown', function() {
down = d3.mouse(document.body);
last = +new Date();
args = arguments;
});
selection.on('mouseup', function() {
if (dist(down, d3.mouse(document.body)) > tolerance) {
return;
}
else {
if (wait) {
window.clearTimeout(wait);
wait = null;
dispatcher.apply("dblclick", this, args);
}
else {
wait = window.setTimeout((function() {
return function() {
dispatcher.apply("click", this, args);
wait = null;
};
})(), 300);
}
}
});
};
// Copies a variable number of methods from source to target.
let d3rebind = function(target, source, method) {
let i = 1, n = arguments.length;
while (++i < n) target[method] = d3_rebind(target, source, source[method]);
return target;
};
// Method is assumed to be a standard D3 getter-setter:
// If passed with no arguments, gets the value.
// If passed with arguments, sets the value and returns the target.
function d3_rebind(target, source, method) {
return function() {
let value = method.apply(source, arguments);
return value === source ? target : value;
};
}
return d3rebind(cc, dispatcher, 'on');
}
return clickcancel();
}
onBarChartXAxisClick() {
let self = this;
let item = null;
d3.select("#your-parent-element-identifier").
select('.cartesianlayer')
.select('.xaxislayer-above')
.selectAll('.xtick > *').each(function(e) {
// @see https://hstefanski.wordpress.com/2015/10/25/responding-to-d3-events-in-typescript/
// but `d3.select(d3.event.currentTarget)` does not work in this case.
// To workaround see https://stackoverflow.com/a/40314241
item = d3.select(this);
// @NOTE: the element of the x-axis is a <text> and does not have the
// attribute "pointer-events". Without this attribute is not possibile
// to listen for mouse events, and for that we have to add it.
item.attr('pointer-events', 'all');
const cc = self.plotlyClickEvents();
item.call(cc);
cc.on('click', (d, index) => {
// Do something
});
});
}
}
相關問題
- 1. plotly.js條形圖需要點擊酒吧onclick事件
- 2. 選擇條形圖類別標籤
- 3. Plotly.js單擊事件
- 4. kendo UI條形圖上的類別標籤
- 5. LWUIT標籤點擊事件?
- 6. Plotly.js將條形圖添加到條形圖使條形消失
- 7. google可視化 - 條形圖上的點擊事件isStacked:true
- 8. ChartJS:在條形圖上單擊時獲得標籤的價值
- 9. 標籤上單擊事件
- 10. 試圖在plotly.js條形圖上反轉工具提示
- 11. 在條形圖上添加標籤Raphael
- 12. 將點擊事件添加到圖表的條形圖
- 13. 跳過JFree條形圖中的類別軸標籤
- 14. 基於價值的左右Kendo條形圖類別標籤
- 15. Plotly.js - 劇情倒轉水平條形圖
- 16. jquery中'a'標籤的點擊事件
- 17. amCharts中的標籤點擊事件
- 18. LWUIT標籤的點擊事件
- 19. Kendo UI條形圖類別在系列中未定義單擊事件
- 20. 標籤上的JFreeChart條形圖酒吧
- 21. 條形圖上的CanvasJS標籤問題
- 22. 忽略鼠標事件可點擊區域上的標籤
- 23. 禁用圖例點擊事件ExtJs條形圖
- 24. 繪製形狀上的點擊事件
- 25. 在高圖上的鼠標點擊事件添加點
- 26. winapi在鼠標點擊事件的屏幕上顯示圖標
- 27. x軸標籤重疊分組類別條形圖d3
- 28. Python條形文件的圖像標籤
- 29. 點擊錨標籤執行JSTL條件
- 30. 點擊圖標放置在地圖上的事件