2009-10-23 23 views
5

Dinamik şöyle jQuery ile bir sayfaya X tuval elemanları ekliyorum: onlar hemen gerçekleştirilmesi zannediyorsunuz çünküTuvalin manipülasyon için hazır olduğunda nasıl tespit edilir?

$(document).ready(function() { 
    for(i=0;i<4;i++) { 
     var can = $(document.createElement("canvas")) 
        .attr("id","table"+i) 
        .addClass("table") 
        .attr("width",640) 
        .attr("height",480) 
        .appendTo('#container'); 
    } 

    //... 
}); 

Ne .append() ne de .appendTo(), bir geri arama var. Ne yazık ki, tuval elemanı hakkında bir şey hemen gerçekleşmez.

Tuval öğelerinden birinde .getContext('2d') adresine gittiğimde "getContext bir işlev değildir." Bu, FF 3.5 ve Chrome'da gerçekleşir.

.click() gibi tuvale elemanlarına rasgele olay işleyici atar ve bu olayda .getContext() kullanın, bu mükemmel çalışır.

Tuvalin manipülasyon için hazır olduğunu nasıl verimli bir şekilde belirleyebilirim?

cevap

5

getContext()'u can değişkeninde kullanabileceğinizi düşünmüyorum.

Bunu yapıyorsanız, can[0].getContext()'u deneyin. Bu, jQuery'nin değil, nesne nesnesini alacaktır.

+0

d'Oh, bariz hata! Bu, belgeyi sarmalamadığım eski bir versiyonum vardı. jQuery öğesinde .createElement öğesini ve yaptığımda bunu telafi etmeyi unuttum. –

0

İlk önce, tarayıcıda bir hata raporu olup olmadığını görecektim.

Bu arada, setInterval'ı veya yalnızca bir döngüyü, yalnızca .getContext (paranteziz) olup olmadığını kontrol etmek için kullanabilir ve yalnızca sonradan devam edebilirsiniz (bazı mantıklı sınırlarla tarayıcıyı durduramazsınız) bir şey ters giderse sonsuz bir döngü veya bir kullanıcı tarayıcısında bu özelliğe sahip değildir.)

+0

(Bu kuşkusuz ve tüm bu kadar verimli değil, ama daha iyi bir şey kullanamayabilir. :() – Kev

0

Kanvasın DOMReady olayına bir işlev ekleyebilirsiniz.

+0

Ooh, havalı geliyor. Umarım işe yarar .. – Kev

+0

Bunu jQuery ile nasıl yaparım? $ (canvaselement) .ready (function() {}), gerçekten de tetikleyicileri, ancak getContext hala mevcut değil. –

İlgili konular