2014-10-08 56 views
0

最近我一直在使用Dimple.js,並發現需要在某些情況下更改默認的工具提示行爲。通過API進行此操作的方法描述爲heredimple.js中的eventArgs看起來不完整

但是,傳遞到函數中的dimple.eventArgs對象應該包含所有關於觸發事件的懸停元素的信息,但似乎缺少一些它應該包含的數據。 jsFiddle示例here。懸停點上的點顯示接收到的eventArgs對象包含數據點的正確yValue屬性,但xValue屬性始終爲空。

相反,註釋掉從小提琴

s.getTooltipText = function (e) { 
    alert("Object xValue: " + e.xValue + " , Object yValue: " + e.yValue); 
    return [e.xValue, e.yValue]; 
}; 

的條線顯示默認提示行爲不會得到正確的x值屬性。

如何在覆蓋默認處理程序時訪問這些值?

回答

1

默認提示處理器實際獲取傳遞給您的覆蓋方法相同的信息:https://github.com/PMSI-AlignAlytics/dimple/blob/master/src/objects/series/methods/getTooltipText.js

如果您正在尋找一樣的格式的文本,你會從標準工具提示弄,你可以通過訪問私有得到它用於獲取標準工具提示的方法。您的重寫getTooltipText函數將在系列的上下文中調用,因此this將具有任何可用的dimple.series方法(這是默認方法計算文本的方式)。

var rows = []; 
this.x._getTooltipText(rows, e); //x is your x dimple.axis object 

另請注意,'rows'將在該函數內部發生變異,並且不會返回任何內容。如果您正在查找用於計算其位置的原始數據點,則應在e.x上提供。僅當您手動使用series.addEventListener時,纔會創建dimple.eventArgs對象。

+0

感謝您的回答。 e.x正是我需要訪問的價值。此外,在給予eventArgs對象更詳細的檢查之後,在瀏覽器控制檯中,看起來它包含文檔中未列出的其他幾個屬性。也許這部分有點過時了。 – user3351605 2014-10-08 17:53:14

+0

它可能仍然是e.xValue爲空的錯誤。我不確定這個(固定)錯誤是否相關:https://github.com/PMSI-AlignAlytics/dimple/issues/15 – ne8il 2014-10-08 17:56:58