/ / Preskúmajte, či jQuery.ui.autocomplete nie je definovaná - jquery-ui, jquery-autocomplete, jquery-ui-datepicker

Skontrolujte, či jQuery.ui.autocomplete nie je definovaná - jquery-ui, jquery-autocomplete, jquery-ui-datepicker

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ď č. 1

Nie 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.