jQuery SVG无法添加图像

时间:2014-07-10 04:37:53

标签: jquery svg

我试图在g标签下添加id" stationMarks"使用jQuery SVG,但似乎" var svg = $(' #stationMarks')。svg(' get');"不起作用,代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <title>Test</title>    
    <!--<script src="jquery/d3/d3.min.js">
    </script>-->
    <script src="jquery/jquery.svg.package-1.4.5/jquery.svg.js"></script>
    <script src="jquery/jquery.svg.package-1.4.5/jquery.svganim.js"></script>
    <script src="jquery/jquery.svg.package-1.4.5/jquery.svgdom.js"></script>
    <script src="jquery/jquery.svg.package-1.4.5/jquery.svgfilter.js"></script>
    <script src="jquery/jquery.svg.package-1.4.5/jquery.svgplot.js"></script>
    <script src="jquery/jquery.svg.package-1.4.5/jquery.svggraph.js"></script>
    <script src="jquery/jquery-1.7.2.js"></script><!-- moved to the top according to advice, but the image still not added-->
    <script type="text/javascript">
        $(function () {
            var svg = $('#stationMarks').svg('get');

            var cx = 21.0526903136934 * 120.343434 - 1470.84140760084;
            var cy = -21.9878694270822 * 43.343434 + 1859.94190338842;

            var cx_locate = cx - 10.5;
            var imageRef = 'swf/siteok.png';

            var image = svg.image(cx - 10.5, cy - 25, 21, 25, 'swf/siteok.png', { id: 'img' });
        });

    </script>
</head>
<body>
<svg width="1584pt" height="2448pt" viewBox="0 0 1584 2448" enable-background="new 0 0 1584 2448"
version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" >
    <g>
...
        <g id="stationMarks">
        </g>
    </g>
</svg>
</body>
</html>

任何人都可以知道它有什么问题吗? 谢谢!

好像&#34; svg.image(cx - 10.5,cy - 25,21,25,&#39; swf / siteok.png&#39;,{id:&#39; img&#39; });&#34;不起作用,但根据参考文献我没有发现错误......有什么建议吗?

2 个答案:

答案 0 :(得分:0)

Jquery库是head标签的第一个。始终在其他脚本之上重新排序jquery库

 <script src="jquery/jquery-1.7.2.js"></script>
     <script src="jquery/jquery.svg.package-1.4.5/jquery.svg.js"></script>
    <script src="jquery/jquery.svg.package-1.4.5/jquery.svganim.js"></script>
    <script src="jquery/jquery.svg.package-1.4.5/jquery.svgdom.js"></script>
    <script src="jquery/jquery.svg.package-1.4.5/jquery.svgfilter.js"></script>
    <script src="jquery/jquery.svg.package-1.4.5/jquery.svgplot.js"></script>
    <script src="jquery/jquery.svg.package-1.4.5/jquery.svggraph.js"></script>

答案 1 :(得分:0)

问题是你最后添加了jquery文件。首先添加jquery文件,然后添加其他文件。

原因是其他的是基于jquery构建的,当它们包含它们的属性和功能时,会查找当时未包含的jquery文件。

所以订单可能是这样的:

<script src="jquery/jquery-1.7.2.js"></script>
<script src="jquery/jquery.svg.package-1.4.5/jquery.svg.js"></script>
<script src="jquery/jquery.svg.package-1.4.5/jquery.svganim.js"></script>
<script src="jquery/jquery.svg.package-1.4.5/jquery.svgdom.js"></script>
<script src="jquery/jquery.svg.package-1.4.5/jquery.svgfilter.js"></script>
<script src="jquery/jquery.svg.package-1.4.5/jquery.svgplot.js"></script>
<script src="jquery/jquery.svg.package-1.4.5/jquery.svggraph.js"></script>

这样可行。