Javascript Raphael JS:拖动结束时会触发单击
以下代码的目的是仅在单击圆时才更改圆的颜色,而不是在拖放后单击鼠标。出于某种原因,拉斐尔正在启动鼠标点击事件。如何预防? 这是 这是HTML:Javascript Raphael JS:拖动结束时会触发单击,javascript,raphael,Javascript,Raphael,以下代码的目的是仅在单击圆时才更改圆的颜色,而不是在拖放后单击鼠标。出于某种原因,拉斐尔正在启动鼠标点击事件。如何预防? 这是 这是HTML: <div id="canvas"></div> 这是我用来拖动集合的: 希望它能帮助您:)为什么要使用set?你会添加更多的形状吗?如果您使用一个形状,我有一个解决方案。这并没有回答问题-在拖动结束时,元素仍然被单击。因为这是一个可接受的答案,我想它确实回答了它。。。当您使用拖动功能更改样式而不使用单击事件时,不需要阻止事件。
<div id="canvas"></div>
这是我用来拖动集合的:
希望它能帮助您:)为什么要使用set?你会添加更多的形状吗?如果您使用一个形状,我有一个解决方案。这并没有回答问题-在拖动结束时,元素仍然被单击。因为这是一个可接受的答案,我想它确实回答了它。。。当您使用拖动功能更改样式而不使用单击事件时,不需要阻止事件。问题的标题清楚地表明
Raphael JS:click在拖动结束时触发。点击仍然被触发,这个答案对关于点击的问题没有帮助。。。
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" });
});
paper = Raphael(0, 0, 500, 500);
var ox = 0;
var oy = 0;
var screenSet = paper.set();
screenSet.push(paper.rect(0, 0, 100, 75, 0).attr({
fill: 'red', stroke: 'none'
}));
screenSet.push(paper.text(0 , 0 ,"Text").attr({ "text-anchor": "start" }));
start = function() {
ox = this.attr("x");
oy = this.attr("y");
screenSet.attr({
opacity: 1
});
},
move = function(dx, dy) {
var att ={
x: ox + dx,
y:oy + dy
};
screenSet.attr(att);
},
up = function() {
this.attr({
opacity: .5
});
ox = 0, oy = 0;
};
screenSet.drag(move, start, up);