У меня есть это:Изменение элементов в SVG с помощью JQuery
<button type="button" id="btn" value="Release">Click Here!</button>
...
<body>
<object data="books.svg" type="image/svg+xml" id="svg" width="1300" height="700"></object>
</body>
<script>
var a = document.getElementById("svg");
var svgDoc
a.addEventListener("load", function() {
svgDoc = a.contentDocument;
}, false);
$(window).load(function() {
console.log($(svgDoc).find("#book1").attr("fill"))
});
$(document).ready(function() {
$("#btn").click(function() {
console.log("You are here")
$(svgDoc).find("#book1").attr("fill","#000000")
})
})
$(window).load(function() {
работы, но
$(document).ready(function() {
$("#btn").click(function() {
... не делает. Почему это?
Edit: Добавлено больше кода
Edit # 2: Понял работать. Далее следуют предложения Роберта Лонгсон и изменил это:
$(document).ready(function() {....})
к этому:
a.addEventListener("load", function() {...}, false);
JQuery:
$("#btn").on('click', function() {...}
Что происходит, когда вы делаете 'console.log ($ (svgDoc) .find (" # book1 "). Attr (" fill "))' после установки атрибута 'fill'? – karthikr
Ничего не происходит – John
Вы получаете сообщение об ошибке? –