我使用element.drag(start, move, up);
当我想让元素不可归档时,我可以使用 the documentation 中的方法来实现这一点:
element.undrag(f); // Any undefined variable works as the argument
这使得元素不再移动。
这种方法有两个问题:
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);
};
答案 0 :(得分:3)
让它在2.0
中工作我不得不改变
this.undrag(notDefinedVariable); // Try to make it undragable
到
this.undrag(); // Try to make it undragable
未定义必须包含在先前版本中,以使其1/2如上所述工作。
答案 1 :(得分:2)
这是已知的错误。将在下一个版本中修复。