我目前正在处理Hypertree图(我想在here中使用它)(存储库为JavaScript InfoVis Toolkit)。问题如下:我将特定事件添加到Hypertree中,这些事件是onClick
和onRightClick
。
Events: {
enable: true,
onClick: function(node, eventInfo, e) {
ht.controller.onComplete();
},
onRightClick: function(node, eventInfo, e) {
ht.controller.onComplete();
},
},
然后,我只是将veent处理程序附加到Hypertree标签上,只需稍微修改demo-code即可:
//Attach event handlers and add text to the
//labels. This method is only triggered on label
//creation
onCreateLabel: function(domElement, node){
domElement.innerHTML = node.name;
$jit.util.addEvent(domElement, 'click', function () {
ht.onRightClick(node.id, {
onComplete: function() {
ht.controller.onComplete();
}
});
});
$jit.util.addEvent(domElement, 'rclick', function () {
ht.onClick(node.id, {
onComplete: function() {
ht.controller.onComplete();
}
});
});
},
这很简单。 Hypertree事件的文档位于Options.Events.js中。现在,我加载页面...,并且我有left.clicks。但是没有右键单击。我希望RightClicks可以移动图形,而onClicks可以从DOM Element节点打开链接。有人可以给我指点吗?
最好,
马吕斯
最佳答案
$ jit.util.addEvent(obj,type,fn)是obj.addEventListener(type,fn,false)的快捷方式。因此,您尝试绑定到“ onrclick”事件。但是javascript中没有此类事件。要检测右键单击,您只需将“ rclick”替换为“ mouseup”,然后在回调中应检查button是否为正确的按钮。这是代码:
$jit.util.addEvent(domElement, 'mouseup', function (event) {
// detecting right button
if (event.button != 2) {
return;
}
ht.onClick(node.id, {
onComplete: function() {
ht.controller.onComplete();
}
});
});
另外,您无需为此使用Options.Events.js,因此可以删除该代码
关于javascript - 将onRightClick添加到JavaScript lib Hypertree,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16373134/