2013-05-04 42 views
0

Im建立一个小型uml建模师与jointjs和raphael为一个小项目我在做...我已经通过点击一个按钮绘制类。通过网络绘制与jointjs的线

我想知道的具体是如何获得关于jointjs类图的onclick事件,因为当我点击它们不工作的类时,它们也会在点击它们时移动一点,如果我可以得到onclick工作我可能会得到的对象点击并在背景上画线...

任何其他想法如何画线...也许从一个类拖到另一个?

有没有人这样做?

谢谢!

+0

使用jsfiddle.net – Neil 2013-05-04 13:18:01

+0

这是我想达到... HTTP可分享的例子:// WWW .jointjs.com/demos/run.html?unit = uml.classdiagram但正如你所看到的图是通过代码手动创建的,我希望能够通过dom操作,鼠标移动来创建它...我有什么现在是单击按钮创建一个或多个类,我缺乏的是创建箭头以将类与图或界面相关联的能力,我想通过从一个类拖动t另一个或通过点击他们,但不知道如何! – maumercado 2013-05-04 18:42:12

+0

事件看起来并没有在jointjs图书馆绘制图表的“论文”中捕获。 – maumercado 2013-05-04 18:42:55

回答

0

我不认为您可以将事件绑定到图元素的鼠标点击,因为鼠标点击事件已经被联合库本身绑定。

但是,您可以绝对绑定mousedown/mouseup事件来模拟点击。 您可以通过点击一个元素(把合资对象在一个临时变量),然后点击另一个实现连接的创建 - 调用

var joint= element.joint(other_element,connection_type) 

希望它能帮助,让我知道如果你需要更多。

2

这是jointjs 0.6的样本代码,诀窍是用模型的id属性来选择对象使用jquery:

 var rect = new joint.shapes.basic.Rect({ 
     position: { x: 100, y: 30 }, 
     size: { width: 100, height: 30 }, 
     attrs: { rect: { fill: 'blue' }, text: { text: 'my box', fill: 'white' } } 
    }); 


    graph.addCells([rect]); 

    //here is the trick 
    $("g[model-id='" +rect.id+ "']").click(function() { 
     alert("x"); 
    }); 
1

jointjs提供的事件呼叫功能。你可以在你的纸上调用事件。 这里是一个例子。可能是这可以帮助你。如需更多信息,请点击链接。 List of triggered events on Paper 代码示例:

paper.on('cell:pointerdblclick',function(cellView, evt, x, y) { 
    demo(); 
    }); 

function demo(){ 
alert("1"); 
} 

我希望这会给予帮助,以周到,谢谢