jQuery.autocomplete() not a function

我使用的jquery的atuocomplete出现了一个jQuery.autocomplete() not a function ,autocomplete非函数的问题.

我的源码:

// 搜索的自动完成
if($(“#kw”).size() && categories){
$(“head”).append($(“<link rel=’stylesheet’ type=’text/css’ href=’”+baseUrl+”js/jquery.ui.autocomplete.css’ />”))
.append($(“<script src=’”+baseUrl+”js/jquery.ui.core.min.js’></script>”))
.append($(“<script src=’”+baseUrl+”js/jquery.ui.widget.min.js’></script>”))
.append($(“<script src=’”+baseUrl+”js/jquery.ui.position.min.js’></script>”))
.append($(“<script src=’”+baseUrl+”js/jquery.ui.autocomplete.min.js’></script>”));
$(“#kw”).autocomplete({source: categories});

}

问题描述:

jQuery.autocomplete() not a function ,autocomplete非函数

在本地测试成功,放到服务器就失败.

域名带www则成功,不带www则失败.

问题原因:

调用autocomplete()函数时,autocomplete.min.js等JS并未完全加载完成,它的加载默认为ajax加载.

同时,带www和不带www的ajax调用十分不同,可以说不到www的为非正规写法,ajax调取会失败.

解决方法:

方式一.直接把jQuery.autocomplete()使用到的css和js,写到<head>中.

方式二.使用js状态码来判断ajax是否完成,然后调用autocomplete()

方式三.对页面进行301重定向到含有www的页面.

发表评论

电子邮件地址不会被公开。 必填项已被标记为 *

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>