数日間壁に頭をぶつけてどこにも行かなくなったので、私がやろうとしていることが実際に実行可能であるという何らかの確認を見つけたいと思います。
DIVを使用したSVGのページがあります。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);
});
});
});
*
誰かが変更が必要な明白な何かを見ることができますか、これを行うことができますか、それともこれは完全に間違っていますか?