簡體   English   中英

使用JQuery更改SVG中的元素

[英]Changing elements in SVG using 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() { works,但是

$(document).ready(function() {
        $("#btn").click(function() {

......沒有。 這是為什么?

編輯:添加更多代碼

編輯#2:讓它發揮作用。 跟隨Robert Longson的建議並改變了這個:

$(document).ready(function() {....})

對此:

a.addEventListener("load", function() {...}, false);

JQuery的:

$("#btn").on('click', function() {...}
$(document).ready();

在解析器完成該頁面的DOM之后,但在初始化所有嵌入對象之前,Web瀏覽器運行后將立即觸發。 如果您想盡快執行JavaScript,這很有用,但這不是您想要的。 我想它是在DOMContentLoaded事件中實現的,因為它匹配ready()描述

您需要UA加載<object>內容才能操作它。 您可以附加到<object>元素onload事件,也可以附加到頁面onload上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM