|
|
你的代码中,myPlot 是一个 DOM 元素(通过 document.getElementById('myDiv') 获取),它没有 name 属性,所以点击时输出 undefined。要解决这个问题,你需要明确想输出什么名字。以下是两种常见情况:
情况1:想输出数据系列的名字
在数据对象中添加 name 属性,然后在点击事件中通过事件参数获取。
修改后的代码示例:
- var myPlot = document.getElementById('myDiv'),
- x = [1, 2, 3, 4, 5],
- y = [10, 20, 30, 20, 10],
- data = [{
- x: x,
- y: y,
- type: 'scatter',
- mode: 'markers',
- marker: { size: 20 },
- name: '我的数据系列' // 添加数据系列名字
- }],
- layout = {
- hovermode: 'closest',
- title: { text: 'Click on Points' }
- };
- Plotly.newPlot('myDiv', data, layout);
- myPlot.on('plotly_click', function(eventData) {
- if (eventData && eventData.points && eventData.points.length > 0) {
- var point = eventData.points[0];
- var traceName = point.data.name; // 获取数据系列的名字
- console.log(traceName); // 输出:'我的数据系列'
- }
- });
复制代码
情况2:想输出图表div的ID
直接使用 this.id 获取DOM元素的ID。
代码示例:
- myPlot.on('plotly_click', function() {
- console.log(this.id); // 输出:'myDiv'
- });
复制代码
选择适合你需求的方法即可。如果还有其他问题,请继续提问!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|