2013-04-26 2 views
0

Это код, который я написал:Как использовать JQuery в SVG?

<?xml version="1.0" standalone="no"?> 

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" 
width="100" height="100"> 

    <circle cx="50" cy="50" r="50" id="cir" fill="green" onclick="showFrame()"/> 

    <script xlink:href="jQuery.js" language="JavaScript"></script> 

    <script type="text/ecmascript"><![CDATA[ 

     function showFrame() { 
      alert($("#cir")); 
     } 
    ]]></script> 
</svg> 

Если JQuery может работать, я не могу увидеть предупреждения, но ничего.

Где я пишу неправильно?

+0

Является ли это '.html' файл ? У вас есть библиотека jQuery? Какой браузер вы используете? В любом случае, если вы хотите манипулировать объектами svg, я рекомендую вам использовать [Raphaeljs] (http://raphaeljs.com/) –

+1

Я предполагаю, что это автономный файл .svg? –

+0

Да, это автономный .svg-файл. – oliver

ответ

2

Он работает для меня, когда я включаю библиотеку jQuery из CDN.

У вас есть jQuery.js?

<?xml version="1.0" standalone="no"?> 

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" 
width="100" height="100"> 

    <circle cx="50" cy="50" r="50" id="cir" fill="green" onclick="showFrame()"/> 

    <script xlink:href="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 

    <script type="text/ecmascript"><![CDATA[ 

     function showFrame() { 
      alert($("#cir")); 
     } 
    ]]></script> 
</svg> 
+0

Я видел вас ответ, и я нашел причину. JQuery плохой. – oliver

1

На мой взгляд, это не то, что вы хотите сделать. Смешивание JS-логики с SVG. Вы бы не сделать это с помощью HTML и JS либо (по крайней мере, вы не должны)

<?xml version="1.0" standalone="no"?> 

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" 
width="100" height="100"> 
    <circle cx="50" cy="50" r="50" id="cir" fill="green" onclick="showFrame()"/> 
</svg> 

Тогда так же, как вы могли бы сделать регулярно где-то в HTML

<body> 
... 
<script> 
    $("#cir").on("click", function(){alert($("#cir");}); 
</script> 
</body> 
+2

Я пишу только отдельный файл .SVG, без html. – oliver