几天来一直把头撞在墙上,一无所获,所以我只想找到某种确认,证明我正在尝试做的事情实际上是可行的......
我有一个带有 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);                    
            });
        });
});
*
任何人都可以看到任何明显需要改变的东西,可以这样做,还是完全错误?