onmouseout 后保持项目集中

Keep item focussed after onmouseout

这是我的代码示例。我知道初始值,所以我申请专注于它。但是,如果我将鼠标悬停在任何项目上,然后鼠标移开,图表将重置为没有关注的项目。我以为我可以使用 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)
}

有人知道我在这里遗漏了什么吗?

谢谢!

那是因为链式 .focus() 方法 - 它 returns 未定义 ,所以变量图表也变得未定义。

图表初始化后,只需在单独的语句中调用初始焦点。

chart.focus(selectedItem);

参见jsfiddle