Kendo 中的方法触发器
Method Trigger in Kendo
我在以下 jsfiddle 中有虚拟数据:http://jsfiddle.net/epvg86qu/18/ 当用户点击该行时,它会调用 DetailChart_Click()
方法绘制其他数据系列 (stats,stats2)
,反之亦然。
然而,当我尝试在我的实际项目中实现此功能 (seriesClick
) 时,它 initialize.However 时只调用一次 DetailChart_Click()
方法,它不会 call/trigger 当用户点击线系列时的那个方法。
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;
}
}
您可以使用下面的代码片段在初始化后绑定您的 DetailChart_Click()
:
var chart = $("#chart").data("kendoChart");
chart.bind("seriesClick", DetailChart_Click);
摘自 here.
或者,在初始化期间绑定它,如 demo 中所示。
补充说明
您目前正在做的事情如下:
chart.options.seriesClick = DetailChart_Click();
是调用DetailChart_Click
函数并分配return值(即undefined
因为它没有 return 值)到 seriesClick
,这不是您想要的。一般来说,如果你想注册 callbacks,比如这个,你会想省略那些括号(使其成为函数 DetailChart_Click
的引用)并将其分配给seriesClick
,这是你打算做的。
但是,即使您删除了上面代码中的括号,您还是错误地分配了它,因为 seriesClick
回调应该由 chart
的 bind
方法注册,而不是将其分配给 chart
.
的 options
属性
希望对您有所帮助!
我在以下 jsfiddle 中有虚拟数据:http://jsfiddle.net/epvg86qu/18/ 当用户点击该行时,它会调用 DetailChart_Click()
方法绘制其他数据系列 (stats,stats2)
,反之亦然。
然而,当我尝试在我的实际项目中实现此功能 (seriesClick
) 时,它 initialize.However 时只调用一次 DetailChart_Click()
方法,它不会 call/trigger 当用户点击线系列时的那个方法。
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;
}
}
您可以使用下面的代码片段在初始化后绑定您的 DetailChart_Click()
:
var chart = $("#chart").data("kendoChart");
chart.bind("seriesClick", DetailChart_Click);
摘自 here.
或者,在初始化期间绑定它,如 demo 中所示。
补充说明
您目前正在做的事情如下:
chart.options.seriesClick = DetailChart_Click();
是调用DetailChart_Click
函数并分配return值(即undefined
因为它没有 return 值)到 seriesClick
,这不是您想要的。一般来说,如果你想注册 callbacks,比如这个,你会想省略那些括号(使其成为函数 DetailChart_Click
的引用)并将其分配给seriesClick
,这是你打算做的。
但是,即使您删除了上面代码中的括号,您还是错误地分配了它,因为 seriesClick
回调应该由 chart
的 bind
方法注册,而不是将其分配给 chart
.
options
属性
希望对您有所帮助!