2013-03-24 63 views
0

我有一條隱藏路徑。 我想克隆它,當我點擊一個div的某個地方,並能夠拖動它時,我點擊並按住它。使用Raphael.js單擊並拖動時克隆路徑

問題是,一旦我完成拖動路徑,釋放鼠標按鈕導致創建另一個路徑

我同時使用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() {}); 
    }); 
}); 

這裏有一個的jsfiddle,顯示怪異的行爲。 http://jsfiddle.net/2gggp/3/

有什麼想法嗎?

回答

1
$('#holder').click(function (e) { 
    if ($(e.target).is("path")) 
    return false; 
    ... 
    ... 
}); 
+0

謝謝!事實上,當你釋放鼠標按鈕時,克隆新路徑。現在我看到了這個問題,並沒有我想象的那麼怪異。 – Jir 2013-03-25 13:45:40