TypeError: $(...). Autocomplete не является функцией
Я получаю вышеуказанную ошибку, используя следующий код внутри модуля Drupal.
jQuery(document).ready(function($) {
$("#search_text").autocomplete({
source:results,
minLength:2,
position: { offset:'-30 0' },
select: function(event, ui ) {
goTo(ui.item.value);
return false;
}
});
});
Jquery определенно загружен, и я попытался использовать другую переменную для $- любых идей, что еще может быть проблемой?
(Редактировать) Ответ на Drupal для автозаполнения:
drupal_add_library('system', 'ui.autocomplete');
Ответы
Ответ 1
вы пропустили библиотеку jquery ui. Используйте CDN JQuery UI, или если вы хотите его локально, загрузите файл из Jquery Ui
<link href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" rel="Stylesheet"></link>
<script src="YourJquery source path"></script>
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js" ></script>
Ответ 2
Простое решение:
Последовательность действительно имеет значение, включая автоматические полные библиотеки:
<link href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" rel="Stylesheet"></link>
<script src='https://cdn.rawgit.com/pguso/jquery-plugin-circliful/master/js/jquery.circliful.min.js'></script>
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js" ></script>
Ответ 3
В моем примере я добавил две библиотеки JQuery в свой файл. В версиях были jquery 1.11.1 и 2.1. Внезапно я вынул 2.1 JQuery из своего кода. Затем он побежал и хорошо работал у меня. Попробовав первый ответ. пожалуйста, проверьте свой файл, как я сказал выше.
Ответ 4
Просто добавьте их в библиотеки своего проекта:
<link href="https://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.min.css" rel="stylesheet"></link>
<script src="https://code.jquery.com/ui/1.10.2/jquery-ui.min.js"></script>
Сохраните и перезагрузите. Тебе хорошо идти.
Ответ 5
Попробуйте этот код, пусть $ будет определен
(function ($, Drupal) {
'use strict';
Drupal.behaviors.module_name = {
attach: function (context, settings) {
jQuery(document).ready(function($) {
$("#search_text").autocomplete({
source:results,
minLength:2,
position: { offset:'-30 0' },
select: function(event, ui ) {
goTo(ui.item.value);
return false;
}
});
});
}
};
})(jQuery, Drupal);