我该怎么做才能覆盖javascript函数?
我将来自Kendo UI图表的plotAreaClick
事件绑定到javascript onPlotAreaClick
函数。我的目标是在placeholder
中使用/显示onPlotAreaClick
变量。
这些不起作用(jsfiddle line:45):
onPlotAreaClick(Placeholder)
onPlotAreaClick(this, Placeholder)
另请参阅:http://jsfiddle.net/rule_34/gpurwayr/1/
var seriesData = [{
productname: "Product One",
volume: 65.50
}];
function onPlotAreaClick(e) {
alert(kendo.format("Plot area click :: {0} : {1:N0}", e.category, e.value));
}
$(document).ready(function() {
// -----------------------------------------------------------------------
function createChart(ChartType, Placeholder, MaxValue) {
$("#" + Placeholder).kendoChart({
theme: "metro",
title: {
font: "12px Arial,Helvetica,sans-serif",
color: "#29952D",
text: "Name: " + Placeholder
},
dataSource: {
data: seriesData
},
seriesDefaults: {
labels: {
template: "#=kendo.format('{0:n2}', (Math.abs(value)))# ltr",
position: "outsideEnd",
visible: true,
background: "transparent"
}
},
series: [{
type: ChartType,
field: "volume",
categoryField: "productname",
}],
valueAxis: [{
min: 0,
max: MaxValue
}],
chartArea: {
width: 125,
height: 175
},
plotAreaClick: onPlotAreaClick, /* HERE */
}) // kendoChart
} // function
// -------------------------------------------------------------------
createChart("column", "example_1", 200);
// -----------------------------------------------------------------------
}); // $(document).ready(function()
答案 0 :(得分:1)
占位符是图表DIV的ID吗?在点击事件中,e.sender
是图表对象,e.sender.element
是DIV,因此可以通过e.sender.element.prop("id")
获取ID。
function onPlotAreaClick(e) {
alert(e.sender.element.prop("id"));
}
更新了 FIDDLE
更新:来自OP的评论
将plotAreaClick更改为匿名函数,然后将占位符传递给onPlotAreaClick函数:
plotAreaClick: function(e) {
onPlotAreaClick(e, Placeholder);
},
function onPlotAreaClick(e, Placeholder) {
alert(Placeholder);
}
<强> FIDDLE 强>