過去幾天我一頭撞牆撞牆,無處可去,所以我只想找到某種確認,我試圖做的事實際上是可以做到的。 ...JQuery和SVG拖放
我有一個SVG頁面與DIV。我希望能夠點擊SVG的一個組件並拖動它。理論上很簡單。 我有一個凌亂的原始JavaScript版本,但我試圖在JQuery中做到一致性。
我有以下的,至極拖圍繞整個容器DIV:
* VAR svgName = 「/mySvg.svg」;
$(document).ready(function($) {
$('#svgDiv').svg();
var svg = $('#svgDiv').svg('get');
svg.load(svgName,
function() {
$('#svgDiv').draggable().bind('mousedown', function(event, ui) {
$(event.target.parentElement).append(event.target);
}).bind('drag', function(event, ui) {
event.target.setAttribute("transform", "translate("+event.clientX+","+event.clientY+")");
});
});
});
*
我改成了這個這個,而且我認爲他會得到通過它的ID的SVG的元素,但這並沒有什麼。就好像JQuery無法看到「內部」(需要更好的單詞)DIV。 *
var svgSource = "/mySvg.svg";
$(document).ready(function($) {
$('#svgDiv').svg();
var svgObj = $('#svgDiv').svg('get');
svgObj.load(svgSource,
function() {
var svgObj2 = $('#svgDiv').svg('get');
var svgElem = svgObj2.getElementById('pathIdOne');
$(svgElem).draggable().bind('mousedown', function(event, ui) {
$(event.target.parentElement).append(event.target);
}).bind('drag', function(event, ui) {
//event.target.setAttribute("transform", "translate("+event.clientX+","+event.clientY+")");
event.target.setAttribute('x', ui.position.left);
event.target.setAttribute('y', ui.position.top);
});
});
});
*
任何人都可以看到任何昭然若揭需要改變,可以這樣做,或者這只是完全錯誤的?
沒有那麼多svg元素具有'x'和'y'屬性,您可能會因'transform'屬性而帶來更多運氣。 – 2012-07-17 14:44:29