![](/img/trans.png)
[英]how to change the arrow direction in HyperTree in JavaScript InfoVis Toolkit
[英]Javascript infovis toolkit (JIT) adding edge event listener in HyperTree
我正在努力向Javascript Infovis工具箱庫中的HyperTree對象邊緣添加邊緣事件偵聽器。 我知道一個事實,那就是所有內容都圍繞“包含”方法,而默認的邊緣類型(“超線”)並未實現該方法。
我做了什么:我已經添加了代碼
Edge: {
overridable: true,
type: 'line',
lineWidth: 4,
color: '#bbb'
}
到HyperTree構造函數。 我已經添加了類似的東西
Events: {
enable: true,
enableForEdges: true,
type: 'Native',
onClick: function (node, eventInfo, e)
if (!node) return;
alert(node);
if (node.nodeFrom) {
alert("target is a node");
} else {
alert("target is an edge");
}
}
}
跟隨這個問題 。 我沒有檢查谷歌瀏覽器的調試器,即contains
方法觸發line
edgeHelper
在JIT源庫對象。 當我單擊某條邊時,所有contains
調用僅對一條邊返回true
,而對其余對象返回false
。
注釋掉enableForEdges
行並type: 'Native'
防止jit edgeHelper
行上contains
方法的Aby觸發器。
但是,如果我在添加的onClick偵聽器上設置斷點,則無論是在邊緣還是在空白區域上單擊(無論如何)時,只要在節點外部單擊,都會得到node == false
。
所以總的問題是:如何在HyperTree的邊緣中正確添加事件偵聽器?
還有一個更狹窄的問題:我怎么能確定,當contains
某行時返回true時,它實際上觸發了onClick偵聽器,同時在此處傳遞了一條邊,而不是false
。
jit.js中有一個錯誤。 我已經提交了pull-request 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.