Я пытаюсь реализовать функцию автозаполнения typeahead
, но не повезло. Я около двух недель новичок в jQuery, поэтому я не уверен, в каком направлении идти. Здесь ошибка я получаю в отладчике в Chrome при загрузке страницыjQuery - Uncaught TypeError: Object [object Object] не имеет метода 'typeahead'
Uncaught TypeError: Object [object Object] has no method 'typeahead' ... BankListMaster:17
Это относится к первой строке внутри этого блока кода после заявлений
<script src="http://code.jquery.com/jquery-1.8.3.js" type="text/javascript"></script>
<script src="http://twitter.github.io/typeahead.js/releases/latest/typeahead.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#typeahead').typeahead({
source: function (term, process) {
var url = '@Url.Content("~/Home/GetNames")';
return $.getJSON(url, { term: term }, function (data) {
return process(data);
});
}
});
});
</script>
Функция typeahead
используется внутри панель поиска со следующим кодом. FYI - тег <ul class="nav">
, который усечен, просто содержит большое количество элементов <li>
. Просто сократил его для удобочитаемости.
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<ul class="nav"> ... </ul>
<ul class="nav">
</ul>
<form class="navbar-search pull-left">
<input type="text" value="" id="typeahead" data-provide="typeahead" class="search-query" /> @*placeholder=" Agent search" />*@
</form>
<ul class="nav pull-right">
<li>@Html.MenuLink("Help", "About", "Home")</li>
</ul>
</div>
</div>
</div>
<li>@Html.MenuLink("Help", "About", "Home")</li>
</ul>
</div>
</div>
</div>
<script src="@Url.Content("~/Scripts/jquery.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/bootstrap-dropdown.js")" type="text/javascript"></script>
<script type="text/javascript">
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script>
EDIT
Я также попытался следующие две декларации, плюс любое количество комбинаций трех (т.е. http
ссылке) и получить ту же ошибку
<script src="@Url.Content("~/Scripts/typeahead.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/typeahead.min.js")" type="text/javascript"></script>
ВТОРОЙ EDIT
Изменен вариант jQuery и файл typeahead
следующим образом и я все равно получаю ту же ошибку ...
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="@Url.Content("~/Scripts/bootstrap-typeahead.js")"></script>
Вы уверены, что вы правильно связали скрипт typeahead? – Kenneth
Вы уверены, что ваш код загружает typeahead js? –
Я пробовал загружать файлы и добавлять их в проект и получил одно и то же сообщение. Однако, чтобы ответить на ваш вопрос ... как я уже сказал, я использовал jQuery уже около двух недель и не уверен, что эти объявления верны на 100%. Если я перейду на страницу twitter github, я смогу просмотреть код, и я загрузил и правильно добавил файлы .js в проект. – NealR