2017-06-29 68 views
0

这是我的代码的一个例子。我知道初始值,所以我申请专注于它。但是,如果我将鼠标悬停在任何项目上,然后鼠标悬停,图表将重置为没有被聚焦的项目。我认为我可以再次将焦点应用于一个onmouseout,但由于范围原因它不起作用。保留项目后重点

var selectedItem = "Banana"; 

var chart = c3.generate({ 
    data: { 
     columns: [ 
      ['Apple', 33.3], 
      ['Banana', 33.3], 
      ['Canada', 33.3], 
     ], 
     type : 'donut', 
     selection: { 
      enabled: true, 
      multiple: false 
     }, 
     onclick: function (d, i) { selectItem(d, i); }, 
     onmouseout: function (d, i) { resetItems(); } 
    }, 
    donut: { 
     title: "Select an Item", 
    } 
}).focus(selectedItem); 

function selectItem(d, i) { 
    selectedItem = d.id; 
} 

function resetItems() { 
    chart.focus(selectedItem) 
} 

有人知道我在这里失踪了吗?

谢谢!

回答

1

这是因为链.focus的()方法 - 它返回未定义,所以可变图表变得不确定太。

只需在图表初始化后的独立语句中调用初始焦点即可。

chart.focus(selectedItem); 

请参阅jsfiddle

+0

呃,太傻了。谢谢你的收获。 – the4tress