2010-06-09 45 views
4

jQuery的,當然所需要的所有在裏面

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

同樣,SVG的網絡要求:

window.onsvgload = function() {}; 

是否有一個正確的,優雅的方式來結合這些不會引入任何問題?

+0

怎麼樣粘貼的'onsvgload' – 2010-06-09 17:28:15

+0

我的整個腳本有當頁面加載(第一)和SVG的網絡中運行的內容已經加載(第二) - 內容是,好吧,一切 – colinmarc 2010-06-09 17:31:54

回答

2

您只需綁定功能,在適當的情況下運行,這樣的:

$(function() { //shortcut for $(document).ready(function() { 
    //stuff that needs the DOM to be ready 
}); 
$(window).bind('svgload', function() { 
    //SVG stuff 
}); 

有沒有害處同時使用,其實這就是適當使用,一直使用您需要的情況下,這與document.ready vs window.load沒有什麼不同,當你需要準備好圖像時,不僅僅是DOM。在支持它的這個答案的時候瀏覽器onload

如果它的事項,發生,不知道這會在其他瀏覽器都支持它雖然是一致的。

+0

謝謝,但我仍然有點困惑。我在哪裏放兩種需要的東西? – colinmarc 2010-06-09 17:59:00

+0

@colinmarc:在DOM準備就緒後,'svgload'將會觸發,因爲它是依賴的,如果它需要將它放在'.bind('svgload')'調用中... SVG元素必須被設置並加載那一點,所以DOM在那之前就已經準備好了。如果只需要DOM,請使用'document.ready'。 – 2010-06-09 18:03:53

+0

這實際上給了我一些問題 - 我最終以我在下面發佈的內容去做 - 但我會留下答案,因爲你真的幫助我理解發生了什麼 – colinmarc 2010-06-09 18:56:57

1

最後發現了這個在「用戶手冊」:

$(document).ready(function() { 
    window.addEventListener('SVGLoad', function() { 
     // ready to work with SVG now 
    }, false); 
}); 
+1

這不是跨瀏覽器兼容的。您應該使用jquery的綁定方法或創建一個函數來決定是否使用addEventListener,attachEvent或設置window.onsvgload。 – KeatsKelleher 2011-04-18 14:53:16

相關問題