2013-11-27 29 views
0

我使用dojo創建了這個量表,但現在我需要添加事件給某些元素,在這種情況下添加到textindicator。在dojox/dgauges/TextIndicator上的事件

我一直在閱讀文檔http://bill.dojotoolkit.org/api/1.9/dojox/dgauges/TextIndicator

和DojoX中/ dgauges/TextIndicator可是沒有 '對' 的方法或 '連接',但DojoX中/儀表/ TextIndicator(什麼將被棄用)同時具備。

有沒有辦法將事件添加到我的dojox/dgauges/textindicator中,或者可以將其替換爲其他元素?

這裏我的代碼 http://fiddle.jshell.net/THJqV/11/

例如,我需要一個onclick事件添加到:var indicatorText = new TextIndicator();

回答

1

TextIndicator是真的有點跛,但我可以提供一點的黑客。

// track clicks on title TextIndicator 
var titleText = 'Reporte Comparativa Comercial-Adquisicion'; 
gauge.on('click', function(event) { 
    var target = event.target; 
    if(target.childNodes && target.childNodes[0].data == titleText) 
     alert("Bingo!"); 
}); 

首先,您可以將.on()添加到您的儀表。但是,那麼你需要一些破解來區分點擊次數。見http://fiddle.jshell.net/BRv4s/

+0

感謝!我終於找到了一個類似的方式,我回答了。我不知道哪一個更好 –

0

我發現了另一個解決方案之前的2個偉大的答案貼,我要發佈它。

我只添加此行和作品!:

gauge.refreshRendering(); 
gauge.getElementRenderer("legend" + id).on('click', function() { alert('goku')}); 

下面的例子http://jsfiddle.net/MacroX/THJqV/12/

+1

這對傳說很好,但不適用於任何「TextIndicator」。但是如果它對你的需求有好處,那麼就使用它。它看起來簡單,然後我的。我會改變的唯一的事情就是移動'gauge.getElementRenderer(「legend」+ id).on('click',function(){alert('goku')});'from addGauge()' 。通過這種方式,爲不同的圖例添加不同的處理程序。 – twil