我需要为每个单元格定义鼠标单击事件。我用过cell:pointerup
事件;但是当我也更改单元格的位置时会触发此事件。如何区分这两个事件?
提前致谢。
我需要为每个单元格定义鼠标单击事件。我用过cell:pointerup
事件;但是当我也更改单元格的位置时会触发此事件。如何区分这两个事件?
提前致谢。
您可以做的是创建自定义元素视图,并通过检查事件是否在和事件pointermove
之间触发来区分单击和拖动。pointerdown
pointerup
var ClickableView = joint.dia.ElementView.extend({
pointerdown: function () {
this._click = true;
joint.dia.ElementView.prototype.pointerdown.apply(this, arguments);
},
pointermove: function () {
this._click = false;
joint.dia.ElementView.prototype.pointermove.apply(this, arguments);
},
pointerup: function (evt, x, y) {
if (this._click) {
// triggers an event on the paper and the element itself
this.notify('cell:click', evt, x, y);
} else {
joint.dia.ElementView.prototype.pointerup.apply(this, arguments);
}
}
});
然后告诉joint.dia.Paper
使用视图。
var paper = new joint.dia.Paper({
// el, width, height etc.
elementView: ClickableView
});
可以在这里找到小提琴。