Javascript 未捕获的TypeError:undefined不是带有自定义jQuery插件的函数
我为jquery autocomplete插件制作了一个包装器插件,因为我们在项目中到处使用它,有时需要对其进行全局更改,但是每当我引用该插件时,就会出现错误:Javascript 未捕获的TypeError:undefined不是带有自定义jQuery插件的函数,javascript,jquery,ajax,Javascript,Jquery,Ajax,我为jquery autocomplete插件制作了一个包装器插件,因为我们在项目中到处使用它,有时需要对其进行全局更改,但是每当我引用该插件时,就会出现错误:Uncaught TypeError:undefined不是一个函数我的插件看起来是这样的: (function ($) { $.fn.CustomAutocomplete = function (options) { //Settings alert("test"); var settings = $.exten
Uncaught TypeError:undefined不是一个函数
我的插件看起来是这样的:
(function ($) {
$.fn.CustomAutocomplete = function (options) {
//Settings
alert("test");
var settings = $.extend({
//Defaults
ContollerMethodLink: "",
ReturnElement: ""
}, options);
$(this).autocomplete({
source: function (request, response) {
var employees = new Array();
$.ajax({
async: false,
cache: false,
type: "POST",
url: ContollerMethodLink,
data: { "query": request.term },
success: function (data) {
for (var i = 0; i < data.length; i++) {
employees[i] = { label: data[i].Key, Id: data[i].Value };
}
}
});
response(employees);
},
select: function (event, ui) {
//fill selected customer details on form
var id = ui.item.Id;
$('#' + settings.ReturnElement).val(id);
}
});
}
})(jQuery);
然而,当我尝试使用它时,我在$(document.ready(function(){
)正上方的一个随机空白处得到了上述错误。如果我在当前调用插件的位置硬编码ajax请求,一切正常。有什么想法吗
编辑:
值得注意的是,这是我的JS文件调用:
<script src="http://code.jquery.com/jquery-1.9.1.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js" type="text/javascript"></script>
然后我调用我的插件文件,调试器显示它被正确地包括在内这似乎是Chrome最新版本中众所周知的问题。使用FF浏览器将提供有关错误的更详细信息此
“@(Url.Action(“方法”、“控制器”)”
无效!您必须在设置变量上编写url:ContollerMethodLink,
而不是url:ContollerMethodLink,
@AminJafari nice catch,尽管@url.Action
只是将相对url打印到我传递给它的任何控件/方法,我使用它作为ajax调用的位置帮助解决了这个问题,问题是包含了两个版本的jQuery,
<script src="http://code.jquery.com/jquery-1.9.1.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js" type="text/javascript"></script>