如何区分节点单击和超链接文本单击jointjs中的元素

时间:2014-12-03 10:33:14

标签: jointjs

var el1 = new joint.shapes.custom.ElementLink({    
position: { x: 80, y: 80 },    
size: { width: 170, height: 100 },    
attrs: {    
rect: { fill: '#E67E22', stroke: '#D35400', 'stroke-width': 5 },    
a: { 'xlink:href': 'http://jointjs.com', 'xlink:show': 'new', cursor: 'pointer' },    
text: { text: 'Element as a link:\nhttp://jointjs.com', fill: 'white' }    

}

});

我想要一个锚标签的处理程序,我可以从我的viewmodel中调用任何事件

1 个答案:

答案 0 :(得分:0)

这完全取决于你想要的东西。如果您正在使用本教程中的joint.shapes.custom.ElementLinkhttp://jointjs.com/tutorial/hyperlinks,则会定义此形状,以便它完全包含在<a>锚标记中,因此单击元素内的任何位置都将跟随链接。但是,您可以捕获click事件,例如,根据事件的目标或某些其他条件决定您是要关注链接还是执行其他操作:

paper.on('cell:pointerclick', function(cellView, evt, x, y) {
    // evt.target contains the SVG subelement that was the target of the click
    // cellView is the view for the joint.shapes.custom.ElementLink cell model
    // cellView.model is the cell model
    if (someCondition) {
        // This is how you can prevent the default browser action which is
        // following the <a> link.
        evt.preventDefault();
    }
})