$ (Function () {}) ne yapar; yapmak?


208

Bazen bir işlev yaparım ve sonradan çağırırım.

Misal:

function example { alert('example'); }
example(); // <-- Then call it later

Her nasılsa, bazı işlevler çağrılamaz. İçinde bu işlevleri çağırmak zorunda:

$(function() { });

Ne $(function() {});ve (function() { });ortalama ve bu farkı / amaç ne?

Yanıtlar:


307
$(function() { ... });

sadece jQuery için kısa el

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

Yapılması için tasarlanan (diğer şeylerin yanı sıra), sayfanın tüm DOM öğeleri kullanıma hazır olduğunda işlevinizin çağrılmasını sağlamaktır.

Bununla birlikte, yaşadığınız sorunun bu olduğunu düşünmüyorum - 'Bir şekilde, bazı işlevler çağrılamaz ve bu işlevi içeride çağırmak zorundayım' ile ne demek istediğinizi açıklayabilir misiniz? Beklendiği gibi çalışmayanları göstermek için kod yazabiliriz.

Düzenleme: Sorunuzu yeniden okuduğunuzda, sayfanızın yüklenmesi tamamlanmadan önce işlevinizin çalışıyor olması ve bu nedenle düzgün yürütülmemesi olabilir; $ (function) içine koymak gerçekten düzeltmek olacaktır!


2
ne $ (function () {}) ise; zaten $ (belge) .ready () içinde mi?
jwchang

zaten $ (document) ready () konumunda olmasına rağmen işlev $ (function () olmadan çalışmaz.
jwchang

İyi soru! JQuery'nin doğru yerde olduğunuzu bildiği için sadece çalışması gerektiğine inanıyorum, ama kesinlikle yabancı; Eğer içerideyseniz .ready () işlevinizi normal olarak arayabilirsiniz. Çalışmıyorsa, bir örnek gönderin veya daha iyisi - jsfiddle.net olarak bir keman yapmaya çalışın.
Russ Clarke

4
@JeongWooChang Böyle yapın (function () { ... })();. ()İşlevinizi çağırmak için eklemeniz gerekir.
Šime Vidas

3
"Deneyimli geliştiriciler bazen kısaltmayı $()kullanırlar $( document ).ready(). JQuery ile deneyimlemeyen kişilerin görebileceği kodlar yazıyorsanız, uzun formu kullanmak en iyisidir." - learn.jquery.com
thdoan

15

Aşağıdaki bir jQuery işlev çağrısıdır:

$(...);

Hangi "jQuery işlevi" dir. $bir işlevdir ve $(...)siz bu işlevi çağırıyorsunuz demektir.

Sağladığınız ilk parametre şudur:

function() {}

Parametre belirttiğiniz bir işlevdir $ve DOM yüklemeyi bitirdiğinde işlev verilen yöntemi çağırır.



5

Javascript jQuery yöntemleri ile kafa karıştırıcı olabilir düşünüyorum. Vanilya veya sade Javascript şuna benzer:

function example() {
}

Bu doğanın bir fonksiyonu her zaman, her yerde çağrılabilir.

jQuery (Javascript üzerine kurulmuş bir kütüphane), genellikle DOM'un çağrılmadan önce tam olarak oluşturulmasını gerektiren işlevlere sahiptir. Bu tamamlandığında sözdizimi şöyledir:

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

Bu nedenle, $veya kelimesi ile önek olarak kullanılan jQuery işlevi, jQuerygenellikle bu yöntemden çağrılır.

$(document).ready(function() {        
    // Assign all list items on the page to be the  color red.  
    //      This does not work until AFTER the entire DOM is "ready", hence the $(document).ready()
    $('li').css('color', 'red');   
});

Bu blok için sözde kod:

Belge nesne modeli $(document)hazır olduğunda .ready(), aşağıdaki işlevi çağırın function() { }. Bu işlevde, CSS özelliğini "renk" değerini "kırmızı" değerine ayarlamak için <li>sayfadaki $('li')ve jQuery yönteminin .CSS () yöntemini kullanarak tümünü kontrol edin.css('color', 'red');


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.