Sayfa yüklendikten SONRA jquery kodu nasıl yapılır?


88

Sayfanızda bir etkinliğin çalışmasını istiyorsanız, onu $ (document) .ready () işlevi içinde çağırmalısınız. İçindeki her şey, DOM yüklenir yüklenmez ve sayfa içeriği yüklenmeden önce yüklenecektir.

Javascript kodunu sadece sayfa içerikleri yüklendikten sonra yapmak istiyorum bunu nasıl yapabilirim?

Yanıtlar:


174

loadBunun yerine kullanın ready:

$(document).load(function () {
 // code here
});

Güncelleme.on() jQuery 1.8'den beri kullanmanız gerekiyor . ( http://api.jquery.com/on/ )

$(window).on('load', function() {
 // code here
});

Gönderen bu cevap :

Göre http://blog.jquery.com/2016/06/09/jquery-3-0-final-released/ :

Kullanımdan kaldırılmış etkinlik takma adları kaldırıldı

.load, .unloadVe .error, jQuery 1.8 beri kaldırılmış, yok artık. .on()Dinleyicileri kaydetmek için kullanın .

https://github.com/jquery/jquery/issues/2286


1
Bu cevapla ilgili yorumdan: stackoverflow.com/a/37817516/957246 $ (pencere) .on ("yükle", işlev () {// kod buraya}); ..çünkü ".load" kullanımdan kaldırılmıştır.
trapper_hag

.on () kullanarak çok açık .. ama bunu bulmadan önce kafamı duvara vurarak 1 saat harcadım .. teşekkürler ..!
ghuroo

3
$(document).on('load', ...$(window).on('load',...
Kullanıcı

29

Takip etme

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

Değiştirilebilir

$(window).bind("load", function() { 
     // insert your code here 
});

Sayfa yükleme süresini artırmak için kullandığım bir yol daha var.

$(document).ready(function() { 
  $(window).load(function() { 
     //insert all your ajax callback code here. 
     //Which will run only after page is fully loaded in background.
  });
});

2
Hazır yükleyicide bir yük alma tertibatı var mı? Bu delilik, o noktada pencere mevcut olduğu için belgeye hazır olmanız gerekmez ve onsuz bir işleyici ekleyebilirsiniz.
dalore

20

bundan kimse bahsetmedi

$(function() {
    // place your code
});

bu kısaltma işlevi

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

16

Düzenleme: Bu kod, tüm içerik (resimler ve komut dosyaları) tarayıcıda tamamen yüklenene ve işlenene kadar bekleyecektir.

Kullandığım Javascript biçimlendirme amaçlı ve öğeleri gizlediği için $(window).on('load',function(){ ... })kodum için çok hızlı ateşlenecek bir sorun yaşadım . Çok erken gizlenen ve 0 yüksekliğiyle bırakılan öğeler.

Şimdi kullanıyorum $(window).on('pageshow',function(){ //code here });ve ihtiyacım olduğu anda ateşleniyor.


1
Bu da bana yardımcı oldu, tam olarak jQuery Mobile sayfası görüntülendikten sonra biraz kod çalıştırmak istedim. Teşekkür ederim. @Boyd Cyr
codedudey

Sadece bu kodun kabul edilen cevaba kıyasla ne kadar yararlı olduğunu eklemek istedim. Çok teşekkürler.
Countzero

10

Bu şekilde '$' içinde tanımsız kalmayı önleyebilirsiniz

window.addEventListener("DOMContentLoaded", function(){
    // Your code
});

DÜZENLEME: 'DOMContentLoaded' kullanmak sadece 'yüklemeden' daha hızlıdır çünkü yükleme bekleme sayfası tamamen yüklendi, görüntüler dahil ... DomContentLoaded sadece yapıyı beklerken


8

Ben de aynı sorunu arıyorum ve işte bana yardımcı olan şey. Burada jQuery sürüm 3.1.0 verilmiştir ve load olayı, jQuery sürüm 1.8'den beri kullanımdan kaldırılmıştır . Load olayı jQuery 3.0'dan kaldırılır. Bunun yerine, on yöntemini kullanabilir ve JavaScript yükleme olayını bağlayabilirsiniz:

$(window).on('load', function () {
  alert("Window Loaded");
});


5

Bunun içine çalıştırılmasını istediğiniz kodu yazın. Belgeniz hazır olduğunda, bu yürütülecektir.

$(document).ready(function() { 

});
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.