我一直在与arbor.js合作,需要帮助解决这几个问题。我能够创建一个基于数据库的图形,一个基本的图表。现在,我需要做的是,单击节点,获取节点数据,并将其显示在旁边。也有一个有向的边缘。所以,问题是
上面的代码根本不起作用,我对jQuery也很陌生,因此我找不出错误,最后一个函数单击了它,试图在单击节点时,从另一个页面获取它的详细信息并显示它。这里的函数完全失败了。在我尝试这样之前,
//My click function
$(canvas).mousedown(function(e){
var pos = $(this).offset();
var p = {x:e.pageX-pos.left, y:e.pageY-pos.top}
selected = nearest = dragged = particleSystem.nearest(p);
var nodeAddress = "http://localhost:7474/db/data/node/" + selected.node.name;
if (selected.node !== null){
// dragged.node.tempMass = 10000
dragged.node.fixed = false;
//$(canvas).unbind('mousemove', handler.dragged)
}
//document.getElementById('detailBox').innerHTML=selected.node.name;
getData(nodeAddress);
//alert(nodeData.self);
return false;
});
// start listening
$(canvas).mousedown(handler.clicked);在处理程序变量之外,javascript工作得很好,它在旁边显示了节点号。但我无法查询并得到json。图也粘在尖头上了。
这就是尝试它的方法吗?否则我怎么做呢。对不起,这个大问题,和无意中错误的格式,这是我的第一篇文章在这里。
谢谢。
发布于 2013-01-13 19:16:03
以下代码适用于我的处理程序。YMMV
我没有使用clicked函数,而是有一个映射到dropped和dragged的down。
我还包括一个move变量,该变量用于dropped函数中,以指示节点是实际被单击还是只是被拖动。
希望这能帮上忙!
initMouseHandling:function(){
// no-nonsense drag and drop (thanks springy.js)
selected = null;
nearest = null;
var dragged = null;
var move = false;
// set up a handler object that will initially listen for mousedowns then
// for moves and mouseups while dragging
var handler = {
moved:function(e){
var pos = $(canvas).offset();
_mouseP = arbor.Point(e.pageX-pos.left, e.pageY-pos.top);
nearest = particleSystem.nearest(_mouseP);
if(!nearest.node){
return false;
}
selected = (nearest.distance < nearest.node.data.radius) ? nearest : null
// code for node that mouse is hovered on ('selected')
},
down:function(e){
var pos = $(canvas).offset();
_mouseP = arbor.Point(e.pageX-pos.left, e.pageY-pos.top)
nearest = dragged = particleSystem.nearest(_mouseP);
move = false;
if (dragged && dragged.node !== null){
dragged.node.fixed = true
}
$(canvas).bind('mousemove', handler.dragged)
$(window).bind('mouseup', handler.dropped)
return false
},
dragged:function(e){
var old_nearest = nearest && nearest.node._id
var pos = $(canvas).offset();
var s = arbor.Point(e.pageX-pos.left, e.pageY-pos.top)
move = true;
if (!nearest) return
if (dragged !== null && dragged.node !== null){
var p = particleSystem.fromScreen(s)
dragged.node.p = p
}
return false
},
dropped:function(e){
var edit = $("#edit").prop('checked')
if (dragged===null || dragged.node===undefined) return
if (dragged.node !== null) {
if(move===false) {
// code for clicked node (dragged.node)
}
dragged.node.fixed = false
}
dragged.node.tempMass = 1000
dragged = null
selected = null
$(canvas).unbind('mousemove', handler.dragged)
$(window).unbind('mouseup', handler.dropped)
_mouseP = null
return false
}
}
$(canvas).mousedown(handler.down);
$(canvas).mousemove(handler.moved);
}https://stackoverflow.com/questions/14286257
复制相似问题