2011-12-24 18 views
6

window.onload işlevinde bazı hatalar farkettim. (Belki de benim hatam) Sorun şu basit işlevi kullandım, tüm tarayıcılarda çalıştı, ancak Chrome.window.onload işlev sorunu

var name=$("#name"); 
window.onload = function(){ 
    name.fadeIn(500); 
}; 

Sonra sadece ilgi için, bunu da denedik: Bu çözdüğümü

Uncaught TypeError: Object [object Object] has no method 'fadeIn' 

: Tüm bu örneklerde

var name; 
window.onload = function(){ 
    name=$("#name"); 
    name.fadeIn(500); 
}; 

, Chrome'un dev araçları Bana bu hata mesajını verdi Aşağıdaki kod ile hata.

window.onload = function(){ 
    var name=$("#name"); 
    name.fadeIn(500); 
}; 

Ama şimdi biraz açıklama istiyoruz, neden ilk 2 parça kod çalışmadı?

+1

İkinci örnek hakkında bilmiyorum, ancak bu ilk kod bloğu henüz bulunmayan bir öğe istiyor olabilir. –

+0

Onunla çalışmaya başlamadan önce 'name'ı önledim,' var name = $ ("# isim"); 've tekrar, yalnızca çalıştıran diğer tüm tarayıcılarda CHROME hata verdi –

+0

Önbelleğe alma ile ne demek istiyorsunuz? JQuery uzmanı değilim, ancak '$()' işlevleri esas olarak getElementById() işlevlerini kullanıyorsa, 'name 'öğesi henüz DOM'a yüklenmemiş olabilir. Neden kroma özel olsa da bir aldatıcıdır. Yazılarınızı sayfanın alt kısmına yerleştiriyor musunuz? –

cevap

4

Bunun, ad olarak adlandırılan global bir değişkene bağlı olabileceğini düşünüyorum. Adını farklı bir ad olarak adlandırırsanız, name1, kromda çalışır. http://jsfiddle.net/R2PuZ/1/

+1

OMG)). Bunu düşünmedim bile. Teşekkürler –

+0

Evet, onunla biraz oynadım ... bir global değişkene bir değer atamak Safari'de bir öğe olduğunu kabul edecek, ancak herhangi bir (veya en azından bazı) özelliğe sahip olmayacak (innerHTML gibi). . Firefox'ta çalışıyor. Çok ilginç. –

+0

evet, gece yarısı yağını yakmanızı sağlayan şeylerden biri. :) İsmin, sonuçların gösterileceği iframe isminden geldiği görünen "sonuç" a ayarlanması çok ilginç. Hala onunla oynuyor .. –