覆盖Kendo UI中的javascript函数

Overwrite a javascript function in Kendo UI

本文关键字:javascript 函数 中的 UI Kendo 覆盖      更新时间:2023-09-26

我必须做什么才能覆盖javascript函数?

我将Kendo UI图表中的plotAreaClick事件绑定到javascript onPlotAreaClick函数。我的目标是在onPlotAreaClick中使用/显示placeholder变量。

这些不起作用(jsfiddle行: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()

占位符是图表div的ID,对吗?在单击事件中,e.sender是图表对象,e.sender.element是DIV,因此id可以由e.sender.element.prop("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