gpt4 book ai didi

javascript - 剑道中的方法触发器

转载 作者:行者123 更新时间:2023-12-03 10:08:37 26 4
gpt4 key购买 nike

我在以下 jsfiddle 中有虚拟数据:http://jsfiddle.net/epvg86qu/18/当用户单击该线时,它会调用 DetailChart_Click() 方法绘制其他数据系列(stats,stats2),反之亦然。

但是,当我尝试在实际项目中实现此功能(seriesClick)时,它在初始化时仅调用一次DetailChart_Click()方法。但是,它不会当用户单击线系列时调用/触发该方法。

var isHover=false;  

self.updateChart = function () {
var chart = $("#chart").data("kendoChart");
chart.options.series = self.dataSeries1;
chart.options.seriesClick = DetailChart_Click();
chart.refresh();
}

function DetailChart_Click() {
console.log("hello");
if (!isHover) {
var chart = $("#chart").data("kendoChart");
chart.options.series = self.dataSeries2;
chart.redraw();
isHover = true;
}
else if (isHover) {
var chart = $("#chart").data("kendoChart");
chart.options.series = self.dataSeries1;
chart.redraw();
isHover = false;
}
}

最佳答案

初始化后,您可以使用以下代码片段绑定(bind)您的DetailChart_Click():

var chart = $("#chart").data("kendoChart");
chart.bind("seriesClick", DetailChart_Click);

取自 here .

或者,在初始化期间绑定(bind)它,如 demo 中所示。 .

附加说明

您目前正在做什么:

chart.options.seriesClick = DetailChart_Click();

正在调用DetailChart_Click函数并分配返回值(这是未定义,因为它没有返回值) value) 到 seriesClick,这不是您想要的。一般来说,如果您想注册像这样的回调,您需要省略这些括号(这使其成为对函数 DetailChart_Click 的引用)并将其分配给seriesClick,这就是您想要做的。

但是,即使您删除了上面代码中的括号,您也错误地分配了它,因为 seriesClick 回调应该由 bind 方法注册Chart,而不是将其分配给 chartoptions 属性。

希望对你有帮助!

关于javascript - 剑道中的方法触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30243075/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com