我正在尝试以调制方式使用jQuery UI
。而不是使用所有.JS
功能加载一个jQuery UI
文件(大于200kb):
<script type="text/javascript" src="jquery.ui.custom.js"></script>
我打算只加载所需的(例如自动完成):
<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>
但是,如果未检测到自动完成功能,我只想通过javascript加载这些文件。我知道我可以检查jQuery UI
是否已加载到具有此JavaScript
条件的网页:
if (typeof jQuery.ui !== 'undefined'){
// jQuery UI core is loaded
}
我需要做的是具体检查是否可以使用jQuery UI
自动填充功能:
if (typeof jQuery.ui.autocomplete !== 'undefined'){
// jQuery UI autocomplete is loaded
}
但上面的代码会返回此错误:
Uncaught TypeError: Object [object Object] has no method 'autocomplete'
我想要实现的是仅在使用其中一个资源时加载jQuery UI
库的方法。来自Google等网站的热链接不是一个选项,我无法将所有jQuery UI
库放在我正在使用的网站的所有页面上。为了实现这一点,我将使用自定义javascript函数来使用jQuery UI
小部件,例如Autocomplete和Datepicker,在这些函数中,我将检查是否加载了jQuery UI
库,如果它们不是,则加载它们“T。我已经为Autocomplete和Datepicker实现了这一点,但是如果在同一页面上运行这两个函数它们将无法工作,因为我的jQuery UI
库检查功能不完全正常。
任何人都知道这样做的方法吗?
答案 0 :(得分:3)
自动完成是否定义为jquery扩展的一部分?我认为你应该检查:
$.fn.autocomplete
因为你调用$('element')。autocomplete();调用插件。