cevap

33

:

Kullanım _create kurmak ve vb işaretlemeyi bağlama olayları, _init() içinde varsayılan işlevselliğini yerleştirin enjekte etmek. İletişim kutusu, örneğin, , bildirgesinin başlatıldıktan sonra açık olması gerektiğini belirten bir autoOpen parametresi parametresi sağlar; _init() için mükemmel bir nokta! Ayrıca

:

eklendi fabrika otomatik olarak bu sırayla, başlatma sırasında _create() ve _init() yöntem ateşler. İlk bakışta, eforunun çoğaltıldığı anlaşılıyor, ancak ikisi arasında görme farkı var. _init() Widget argümanlar olmaksızın denilen her zaman adı verilecek oysa Widget fabrika aynı eleman birden fazla örneklemesi karşı korur Çünkü _create() olacak , her Widget örneği için bir defada en fazla denir ...

yazar _create() kodlu gerekirken _init() kullanıyorsa

, sonuç _init() kod Widget örnekleme başına bir kez çalıştırılacaktır olduğunu olacaktır. Burada

+0

Eh, bir kez * widget'a * çağrı * Her durumda, bu ikinci bağlantı paha biçilmez (bu ve diğer konularda); nasıl oldu da onu özledim. Çok teşekkürler! –

4

Kısa cevap: Eğer $ xx.your-eklentisi gibi (seçeneklerinizi) ilk kez jquery-ui eklentisi çalıştırdığınızda _create() yürütülecektir; _init() ilk ve kodundan sonra kodunuz $ xx.your-plugin'e (seçenekleriniz) girdiğinde;

böyle jquery-ui.custom.js bazı kod bulunmadığından:

var instance = $.data(this, fullName); 
if (instance) { 
    instance.option(options || {})._init(); 
} 

yüzden dışarı çizilmiş sonra, jquery-ui eklenti ile bir grafik çizmek eğer, o zaman istediğiniz ,'u güncellemek için yeni verileri kullanın, grafiğinizi güncellemek için bunu _init() uygulamasında yapmanız gerekir. Sadece bir şey görüntülerseniz ve bunları tamamen güncellemezseniz, _create() ihtiyaçlarınızı karşılar.