我做了一个包装插件jQuery的自动完成插件,因为我们在任何地方使用它在我们的项目,需要在全球范围内,在时代变化了,但是每当我引用插件我得到的错误:Uncaught TypeError: undefined is not a function
我撑着看起来像这样:遗漏的类型错误:不确定是不是自定义jQuery插件的功能
(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() {
$('#AddReportingEmpText').CustomAutocomplete({
ReturnElement: "AddReportingEmpId",
ContollerMethodLink: "@(Url.Action("Method", "Controllers"))",
});
});
然而,当我尝试使用此我得到上述错误随机空的空间权以上$(document).ready(function() {
if i hard co在当前我正在调用我的插件的地方退出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>
然后我打电话给我的插件文件和调试器显示我,它被适当地包括
这'“@(Url.Action(”法“‘控制器’))”'是无效的!也代替'网址:ContollerMethodLink,'你必须写'网址:settings.ContollerMethodLink,对变量的设置' – 2014-10-09 16:22:42
@AminJafari不错的接球,尽管'@ url.Action'简单地打印相对URL到任何位指示/方法我通过它,并将它作为Ajax调用 – Typhomism 2014-10-09 17:30:33