在Kendo UI中覆盖javascript函数

时间:2015-11-18 11:35:03

标签: javascript jquery kendo-ui

我该怎么做才能覆盖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()

1 个答案:

答案 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