Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Raphael.js单击并拖动路径时克隆路径_Javascript_Jquery_Raphael - Fatal编程技术网

Javascript 使用Raphael.js单击并拖动路径时克隆路径

Javascript 使用Raphael.js单击并拖动路径时克隆路径,javascript,jquery,raphael,Javascript,Jquery,Raphael,我有一条隐藏的道路。 我想在单击div中的某个位置时克隆它,并在单击并按住它时能够拖动它 问题是,一旦我在路径上拖动完毕,释放鼠标按钮会导致创建另一条路径 我同时使用Raphael.js和JQuery,下面是我使用的代码: var c = Raphael("holder", 640, 480); var p = c.path("M150 0 L75 200 L225 200 Z").hide().attr("fill", "#c0c0c0"); function getCenter (bbox)

我有一条隐藏的道路。 我想在单击div中的某个位置时克隆它,并在单击并按住它时能够拖动它

问题是,一旦我在路径上拖动完毕,释放鼠标按钮会导致创建另一条路径

我同时使用Raphael.js和JQuery,下面是我使用的代码:

var c = Raphael("holder", 640, 480);
var p = c.path("M150 0 L75 200 L225 200 Z").hide().attr("fill", "#c0c0c0");
function getCenter (bbox) {
    return [Math.floor(bbox.x + bbox.width/2.0), Math.floor(bbox.y + bbox.height/2.0)];
};

$(document).ready(function (e) {
    $('#holder').click(function (e) {
        var posX = $(this).position().left, posY = $(this).position().top;
        var [x,y] = getCenter(p.getBBox());
        p.clone()
            .transform("T"+[(e.pageX-posX-x),(e.pageY-posY-y)])
            .drag(
        function (dx, dy) {     
            this.transform("t"+(e.pageX-posX-x+dx)+","+(e.pageY-posY-y+dy));
        },
        function () {},
        function () {});
    });
});
这里有一个JSFIDLE显示了这种奇怪的行为。


有什么想法吗?

谢谢!实际上,当您释放鼠标按钮时,会克隆一条新路径。现在我看到了这个问题,它不像我想象的那么奇怪。
$('#holder').click(function (e) {
   if ($(e.target).is("path")) 
     return false;
   ...
   ...
});