Snažím sa použiť jQuery UI
modulovaným spôsobom. Namiesto načítania jedného .JS
súbor (väčší ako 200 kb) so všetkými jQuery UI
funcionalitu:
<script type="text/javascript" src="jquery.ui.custom.js"></script>
Snažím sa načítať iba tie potrebné (napríklad pre automatické dokončovanie):
<script type="text/javascript" src="jquery.ui.core.min.js"></script>
<script type="text/javascript" src="jquery.ui.widget.min.js"></script>
<script type="text/javascript" src="jquery.ui.position.min.js"></script>
<script type="text/javascript" src="jquery.ui.menu.min.js"></script>
<script type="text/javascript" src="jquery.ui.autocomplete.min.js"></script>
Ale chcem načítať tieto súbory cez javascript iba vtedy, ak nie je detekovaná funkcia autocomplete.Viem, že môžem skontrolovať, či jQuery UI
je načítané na stránku s týmto JavaScript
stav:
if (typeof jQuery.ui !== "undefined"){
// jQuery UI core is loaded
}
Potrebuješ konkrétne skontrolovať, či jQuery UI
Funkcia automatického dokončovania je k dispozícii na použitie:
if (typeof jQuery.ui.autocomplete !== "undefined"){
// jQuery UI autocomplete is loaded
}
Ale vyššie uvedený kód vráti túto chybu:
Uncaught TypeError: Object [object Object] has no method "autocomplete"
To, čo sa snažím dosiahnuť, je spôsob zaťaženia jQuery UI
knižníc, iba ak sa použije jeden zo svojich zdrojov. Hotlink z webových stránok, ako je Google, nie je voľbou a nemôžem dať všetko jQuery UI
knižnice na všetkých stránkach webových stránok, s ktorými pracujem. Na dosiahnutie tohto cieľa budem vytvárať vlastné javascriptové funkcie na použitie jQuery UI
Widgety ako Autocomplete a Datepicker a vo vnútri týchto funkcií, skontrolujem, či jQuery UI
knižnice sú načítané a načítať ich, ak nie sú. Tie som dosiahol to pre Autocomplete a Datepicker, ale nebudú pracovať, ak spustiť obe funkcie na rovnakej stránke, pretože moje jQuery UI
kontrolné knižnice nie sú úplne funkčné.
Každý, kto to vedel nejakým spôsobom?
odpovede:
3 pre odpoveď č. 1Nie je to automatické dopĺňanie definované ako súčasť rozšírenia jquery? Myslím, že by ste mali kontrolovať:
$.fn.autocomplete
Keď voláte $ ("element"), autocomplete (); zavolať doplnok.