Что вы можете сделать, это создать пользовательский вид элемента и отчетливый щелчок перетаскивать, проверяя, было ли вызвало 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
});
Сценарий можно найти here.
Большое вам спасибо @Roman за вашу помощь; Оно работало завораживающе! – talha06
Что делать, если я хотел применить этот вид только к определенной модели, а не ко всему на бумаге? Как мне продолжить? – madagalbiati
Ничего, получилось ... – madagalbiati