Jquery ui自动完成错误不是一个功能

Posted

技术标签:

【中文标题】Jquery ui自动完成错误不是一个功能【英文标题】:Jquery ui autocomplete error not a function 【发布时间】:2018-01-20 19:55:28 【问题描述】:

我想用jquery ui的自动补全功能,但是遇到了问题。

我用的是google的外部库:

	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

< script type = "text/javascript"
src = "https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js" > < /script>

我的自动完成脚本

$("#search").autocomplete(
  source: 'autocomplete-search.php',
);

我有这个错误:

jQuery.Deferred 异常:$(...).autocomplete 不是函数 TypeError: $(...).autocomplete 不是函数

htmlDocument。 (http://localhost/sitename/script.js:382:16) 在 j (https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js:2:29948) 在 k (https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js:2:30262) >未定义

【问题讨论】:

【参考方案1】:

您还需要在 jquery-ui 包含之前将 JQuery 本身包含到您的项目中。为了能够解析这个,

$("#search")

,JQuery 本身是必需的。尝试在您的其他脚本之前包含来自 google 的此内容。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

【讨论】:

另外,jquery-ui.min.js文件本身就有JQuery,所以需要JQuery主文件。 JQuery-UI 只是一个扩展。 :) 这就是问题所在,因为我已经包含了 JQuery。所以我真的不知道为什么它不起作用 我能够重新创建问题,但只有当我选择 ACTUAL DOM 元素本身而不是 JQuery 元素时。例如 document.getElementById('search').autocomplete() 或 $('search')[0].autocomplete() 。但是您似乎选择了正确的方式,所以我不确定发生了什么。您可以尝试几件事:将自动完成功能包装在 $(document).ready(function() ); 中或预先选择 jquery 元素: var search = $('#search'); search.autocomplete(....);我能想到的就这么多了。 并确保在 jquery-ui 文件之前包含实际的 jquery 文件。顺序很重要 以下是我的确切文件工作。如果这不起作用,那么肯定是代码以外的东西。尝试清除浏览器的缓存,或使用其他浏览器。

以上是关于Jquery ui自动完成错误不是一个功能的主要内容,如果未能解决你的问题,请参考以下文章

Jquery UI - 自动完成不是一个功能

自动完成“不是功能”

Jquery自动完成不是一个功能

jQuery UI 自动完成使用startsWith

选择 jQuery UI 自动完成后清除表单字段

jquery ui自动完成定位错误