Odpowiedz

33

Od:

Zastosowanie _create budować i wstrzyknąć znaczników, wydarzenia powiązań itd Umieść domyślną funkcjonalność w _init(). Widget dialogowy, na przykład , podaje parametr określający, czy okno dialogowe powinno być otwarte po zainicjowaniu widgetu: ; idealne miejsce na _init()!

również:

Fabryka widget automatycznie wyzwalana metody _create() i _init() podczas inicjalizacji, w tej kolejności. Na pierwszy rzut oka wydaje się, że wysiłek został zduplikowany, ale istnieje różnica między wzrokiem . Ponieważ fabryka widget chroni przed wieloma dawałaby na samego elementu, _create() będzie nazywa maksymalnie jeden raz dla każdego widget instancji, natomiast _init() będzie nazwać każdorazowo widget jest wywołana bez argumentów ...

Jeśli autor używa _init() gdy _create() powinny zostać zakodowane, wynik będzie, że kod w _init() będą wykonywane raz na widget instancji.

+0

Cóż, raz na * zadzwoń * do widżetu :-) Tak czy inaczej, ten drugi link jest nieoceniony (w tym i innych kwestiach); nie wiem jak to przegapiłem. Dzięki wielkie! –

4

Krótka odpowiedź tutaj: _create() będzie wykonywany po uruchomieniu plugin jquery-ui po raz pierwszy, jak $ xx.your-plugin (opcje); Funkcja _init() zostanie wykonana po raz pierwszy i po raz pierwszy, gdy Twój kod zostanie wyświetlony w $ xx.twoja-wtyczka (twoje opcje);

Ponieważ istnieje jakiś kod w jQuery ui.custom.js tak:

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

Tak więc, jeśli narysować wykres z plugin jquery-ui, po to wyciągnięta, a chcesz do użyj nowych danych do aktualizacji, musisz to zrobić w _init(), aby zaktualizować swój wykres. Jeśli tylko coś wyświetlisz i nie zaktualizujesz ich całkowicie, _create() spełni twoje potrzeby.