2015-11-18 70 views
0

我必須做些什麼才能覆蓋javascript函數?在Kendo UI中覆蓋javascript函數

我將plotAreaClick事件從Kendo UI圖表綁定到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() 
+0

的鏈接的jsfiddle按預期工作,並顯示當我點擊圖的消息框。 –

回答

1

佔位符是的圖表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

+0

我認爲你的想法是這樣的一樣: \t plotAreaClick:功能(E){ \t \t的console.log(kendo.format( 「地塊面積點擊:: {0} {1:N0}」,E .category,e.value)); \t \t onPlotAreaClick(佔位符) \t}, 而現在的功能所能輸出的佔位符數據: \t函數onPlotAreaClick(值){ \t \t的console.log(值); \t} 但我的問題是:我怎麼可以調用函數並將「e」值與Placeholder變量一起傳送。 – Bettelbursche

+1

@Bettelbursche,看到更新的答案和小提琴(http://jsfiddle.net/ezanker/gpurwayr/3/) – ezanker