Począwszy od jQuery 1.9, a widget can inherit from itself. Nie mogłem znaleźć prawdziwego przykładu tego, dlaczego byłoby to użyteczne, i szczerze mówiąc, idea dziedziczenia od siebie łamie mój mózg. Jaki jest cel tej funkcji? Co mogę zrobić, korzystając z tej funkcji, której wcześniej nie mogłem zrobić, lub wcześniej byłoby o wiele trudniej?Dlaczego chciałbym, aby widget JQuery UI dziedziczył sam?
Odpowiedz
Jak jest powiedziane in the slide you linked us, "jest to idealny sposób na rozszerzenie widżetów".
Teraz możesz rozszerzyć widget bez tworzenia nowego, "innego" obiektu widżetu ("inny", co oznacza "inne imię"). Możesz dodać funkcję i nadal używać tej samej nazwy obiektu widgetu.
// An incredibly contrived example
$.widget("ui.dialog", $.ui.dialog, {
close: function() {
if (confirm("Is it closing time?")) {
this._super("close");
}
}
});
Jak widać na przykładzie, możemy dodać funkcję do obiektu dialogowym, które pojawi się w już istniejących oknach, to znaczy, że nie ma potrzeby tworzenia nowego „extendedDialog”, a następnie zmień istniejący kod, aby użyć obiektu "extendedDialog". Zamiast tego dołączona funkcjonalność będzie już dostępna i będzie działać.
Powodem jest przedefiniowanie tego samego widżetu. Dodajesz do tego nowe możliwości, nie musisz rozszerzać go na inny obiekt.
W przykładzie przedstawionym w linku, który wysłał:
$.widget("ui.dialog", $.ui.dialog, {
close: function() {
if (confirm("Is it closing time?")) {
this._super("close");
}
}
});
Po wykonaniu powyższego kodu, każdy dialog, który jest tworzony pojawi się komunikat potwierdzenia, gdy użytkownik kliknie w przycisk zamknięcia i jeżeli on/on to akceptuje, to się zamknie.
Daje to możliwości podobne do kategorii obiektywu-c, można dodać funkcjonalność do klasy (widgetu) bez konieczności zmiany samego kodu klasy/widżetu, lub nawet mieć dostęp do jego źródła.
- 1. Widget Gwiazdka dla jQuery UI
- 2. Jak przedłużyć istniejący widget JQuery UI?
- 3. Spraw, aby JRuby dziedziczył ustawienia proxy Java.
- 4. Zdarzenie upuszczania kropli jQuery UI droppable widget wypalanie dwa razy
- 5. Jak sprawdzić, czy widget JQuery UI jest załadowany?
- 6. Zawartość AJAX w widgetie JQuery UI Tooltip Widget
- 7. JQuery - Widget Metody publiczne
- 8. Jquery-ui przeciągalne i dynamiczne Jquery-ui przeciągalne?
- 9. pionie na jQuery witryny UI
- 10. widget jQuery nie ma metody "rozszerzania"
- 11. jQuery UI Autouzupełnianie z kategoriami
- 12. Jak rozszerzyć widżet jquery ui? (1.7)
- 13. jQuery vs jQuery Mobile vs jQuery UI?
- 14. Z WatiN, chciałbym poczekać na wydarzenie jQuery
- 15. requirejs + jqueryui = $ .widget nie zdefiniowany
- 16. Jquery ui $ ([])
- 17. Jquery ui Dialog Modal True
- 18. Dlaczego NIE chciałbym używać odwrotności wszędzie?
- 19. Dlaczego chciałbym zainstalować SharePoint z TFS
- 20. jQuery UI i Bootstrap temat kolizji
- 21. Jquery ui combobox (autouzupełnianie) znika
- 22. jQuery UI "$ (" # datepicker ")
- 23. jQuery validate ukrywa kontrole Kendo-ui
- 24. jQuery UI - Konwertuj jQuery UI Datepicker na czas UNIX
- 25. JQuery UI Autouzupełnianie Pozycja
- 26. jQuery UI Accordion aktywuj
- 27. Stylizowanie kart Jquery-ui
- 28. zmianę wartości postępu jQuery UI pasku
- 29. widget autouzupełniania interfejsu jQuery - jak uzyskać odniesienie do menu?
- 30. Właściwy sposób tworzenia zmiennej instancji za pomocą jQuery UI Widget Factory
JavaScript nie ma klas;) – davidbuzatto
JavaScript również nie dziedziczy! :-) –
Dzięki za odpowiedź. Kluczowym elementem, którego mi brakowało, jest możliwość rozszerzenia udostępnionego widgetu w innym pliku źródłowym tylko dla określonej aplikacji. Coś jak częściowe klasy w C#. Teraz ma to sens. – RationalGeek