以下代码的意图是只有在单击圆形时更改其颜色,而不是在拖放后的鼠标抬起时。由于某种原因,Raphael会在鼠标抬起时触发click事件。如何防止这种情况发生?
这是jsfiddle。
这是HTML:
<div id="canvas"></div>
以下是 JavaScript 代码:
Raphael.st.draggable = function() {
var me = this,
lx = 0,
ly = 0,
ox = 0,
oy = 0,
moveFnc = function(dx, dy) {
lx = dx + ox;
ly = dy + oy;
me.transform('t' + lx + ',' + ly);
},
startFnc = function() {},
endFnc = function() {
ox = lx;
oy = ly;
};
this.drag(moveFnc, startFnc, endFnc);
};
var paper = Raphael(document.getElementById('canvas'));
var mySet = paper.set();
var c = mySet.push(paper.circle(50, 50, 50).attr('fill', 'red'));
mySet.draggable();
c.click(function(evt) {
this.attr({"fill": "#2e2e2e" });
});