/ / Verifique especificamente se jQuery.ui.autocomplete é indefinido - jquery-ui, jquery-autocomplete, jquery-ui-datepicker

Verifique especificamente se jQuery.ui.autocomplete está indefinido - jquery-ui, jquery-autocomplete, jquery-ui-datepicker

Estou tentando usar jQuery UI de forma modulada. Em vez de carregar um .JS arquivo (maior que 200kb) com todos jQuery UI funcionalidade:

<script type="text/javascript" src="jquery.ui.custom.js"></script>

Eu pretendo carregar somente os necessários (por exemplo, para o autocompletar):

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

Mas eu quero carregar esses arquivos através do javascript somente se a funcionalidade de autocomplete não for detectada. Eu sei que posso verificar se jQuery UI é carregado para uma página com este JavaScript condição:

if (typeof jQuery.ui !== "undefined"){
// jQuery UI core is loaded
}

O que eu preciso fazer é verificar especificamente se jQuery UI A funcionalidade de preenchimento automático está disponível para uso:

if (typeof jQuery.ui.autocomplete !== "undefined"){
// jQuery UI autocomplete is loaded
}

Mas o código acima retorna este erro:

Uncaught TypeError: Object [object Object] has no method "autocomplete"

O que estou tentando alcançar é uma maneira de carregar jQuery UI bibliotecas apenas quando um dos seus recursos é utilizado. Hotlink de sites como o Google não é uma opção, e eu não posso colocar todos jQuery UI bibliotecas em todas as páginas de um site com o qual estou trabalhando. Para conseguir isso, vou fazer funções de javascript personalizadas para usar jQuery UI Widgets como Autocomplete e Datepicker, e dentro dessas funções, eu vou verificar se jQuery UI bibliotecas são carregadas, e carregá-los, se eles não são ". Eu consegui que para Autocomplete e DatePicker, mas eles não vão funcionar se executar ambas as funções em uma mesma página, porque o meu jQuery UI verificação de bibliotecas não é totalmente funcional.

Alguém sabe alguma maneira de fazer isso?

Respostas:

3 para resposta № 1

Não é autocomplete definido como parte de uma extensão jquery? Eu acho que você deve estar verificando:

$.fn.autocomplete

Desde que você chama $ ("elemento"). Autocomplete (); para chamar o plugin.