Я сделал элемент перетаскиваемым с помощью element.drag(start, move, up);
Когда я хочу сделать элемент не стираемым, я могу в некоторой степени добиться этого, используя метод из документации :
element.undrag(f); // Any undefined variable works as the argument
Это делает невозможным перемещение элемента.
У этого метода есть 2 проблемы:
- Это делает все элементов на странице не стираемыми.
start()
по-прежнему срабатывает один раз для каждогоэлемент.У меня произошла смена непрозрачности в start()
, так что это вполне очевидно.
Как сделать элемент не стираемым, чтобы воздействовал только на этот элемент и start()
не срабатывал?
Вот что у меня так далеко.Следующее пытается сделать элемент не стираемым после одного перетаскивания:
wiwindow.onload = function() {
var R = Raphael("canvas", 500, 500),
c = R.circle(100, 100, 50).attr({
fill: "hsb(.8, 1, 1)",
stroke: "none",
opacity: .5
}),
d = R.circle(200, 200, 50).attr({
fill: "hsb(1, 1, .8)",
stroke: "none",
opacity: .5
}),
start = function () {
// storing original coordinates
this.ox = this.attr("cx");
this.oy = this.attr("cy");
this.attr({opacity: 1});
},
move = function (dx, dy) {
// move will be called with dx and dy
this.attr({cx: this.ox + dx, cy: this.oy + dy});
},
up = function () {
// restoring state
this.attr({opacity: .5});
this.undrag(notDefinedVariable); // Try to make it undragable
};
c.drag(move, start, up);
d.drag(move, start, up);
};