Я создал плагин-оболочку для плагина автозаполнения jquery, поскольку мы используем его повсюду в наших проектах и вам нужно глобально изменять его время от времени, однако всякий раз, когда я ссылаюсь на плагин i получаю ошибку: Uncaught TypeError: undefined is not a function
мой pluggin выглядит так:Uncaught TypeError: undefined не является функцией с настраиваемым плагином 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() {
, если я твердо вычеркнуть запрос ajax в том месте, где я в настоящее время вызываю мой плагин, все работает нормально. Есть идеи?
Edit: Стоит отметить, что это мой вызов 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 («Метод», «Контроллеры»)) »' недействителен! также вместо 'url: ContollerMethodLink,' вы должны написать 'url: settings.ContollerMethodLink,' –
@AminJafari приятно поймать переменную настроек, хотя '@ url.Action' просто печатает относительный URL-адрес любому контоллеру/методу, который я передаю к нему и им использовать это как местоположение вызова ajax – Typhomism