JS怎么获取SVG的offsetLeft和offsetTop

JS如何获取SVG的offsetLeft和offsetTop;
本帖最后由 yujunwei2010 于 2015-04-03 15:09:48 编辑
大家不要纠结全部函数,以下代码只看mousedown函数就行,我在mousedown里面进行alert (this.offsetLeft)和alert (this.offsetTop);;

以下JS能取到id为drag的DIV的offsetLeft和offsetTop,但是id为drag的SVG就得不到,求解!


 <script src="jquery.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function(){
            var dragging = false;
            var iX, iY;
            $("#drag").mousedown(function(e) {
                dragging = true;
                iX = e.clientX - this.offsetLeft;
                iY = e.clientY - this.offsetTop;
alert(this.offsetLeft);
                                alert (this.offsetTop);
                this.setCapture && this.setCapture();
                return false;
            });
            document.onmousemove = function(e) {
                if (dragging) {
                var e = e || window.event;
                var oX = e.clientX - iX;
                var oY = e.clientY - iY;
                $("#drag").css({"left":oX + "px", "top":oY + "px"});
                return false;
                }
            };
            $(document).mouseup(function(e) {
                dragging = false;
                $("#drag")[0].releaseCapture();
                e.cancelBubble = true;
            })
 
        })
 
    </script>
------解决思路----------------------
div是HTMLDivElement,svg是SVGSVGElement,svg没有那个属性,自然就获取不到结果了。

你可以查看它们的构造函数,就能看出区别来了。