2013-05-21 2 views
0

Есть ли способ выбрать svg с jQuery ?. Я не хочу ничего манипулировать. Просто нажмите, как любой img.jQuery click svg

(я знаю, что они являются некоторые внешние библиотеки манипулировать SVG Но что я спрашиваю здесь, если можно просто щелкнуть JQuery и ничего другого.)

Пожалуйста, проверьте ваш ответ здесь: http://jsfiddle.net/NUCwg/

HTML:

<div id="content" > 
    <object data="http://upload.wikimedia.org/wikipedia/commons/3/38/HTML5_Badge.svg" 
     type="image/svg+xml" id="svg"> 
     <img src="grafic.png" alt="BG"> 
    </object> 
</div> 

Jquery:

$(function(){ 
    $("#content").click(function() { 
     $("#content").fadeOut("normal"); 
    }); 
}) 
+0

не имеет отношения к вашей проблеме, но вы должны закончить свой тег img. – smerny

+0

@smerny нет, если вы не проверяете XHTML. – moonwave99

+0

@smerny img является закрывающим тегом, нет необходимости его закрывать: ... является W3C действительным –

ответ

1

Как вы не можете связать события к объекту/SVG от перекрестного домена, вы можете обмануть его с помощью такого рода хак {использованием наложения}:

SEE DEMO

$(function() { 
    var $content = $('#content'), 
     $overlay = $('<div/>').width($content.width()).height($content.height()).css({ 
      position: 'absolute', 
      left: $content.offset().left, 
      top: $content.offset().top 
     }).appendTo('body').click(function() { 
      $content.add(this).fadeOut("normal"); 
     }); 
}) 
+0

Если вы хотите получить растровый запас, это определенно путь. –

1

http://jsfiddle.net/NUCwg/6/

Я думаю, что ваше решение не работает, потому что Jquery не может исчезнуть object или embed элементов (см http://jsfiddle.net/9CVFd/1/). Единственным недостатком моего решения является то, что ему не хватает растрового запаса.

Смежные вопросы