2013-04-19 6 views
3

Я пытаюсь реализовать функцию автозаполнения 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> 
+1

Вы уверены, что вы правильно связали скрипт typeahead? – Kenneth

+1

Вы уверены, что ваш код загружает typeahead js? –

+0

Я пробовал загружать файлы и добавлять их в проект и получил одно и то же сообщение. Однако, чтобы ответить на ваш вопрос ... как я уже сказал, я использовал jQuery уже около двух недель и не уверен, что эти объявления верны на 100%. Если я перейду на страницу twitter github, я смогу просмотреть код, и я загрузил и правильно добавил файлы .js в проект. – NealR

ответ

2

Я не знаю, в чем причина этой проблемы, но эти декларации решили ее. Я оставлю этот вопрос без ответа ненадолго, если кто-то увидит проблему.

<script src="http://code.jquery.com/jquery-1.8.3.min.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" src="http://blattchat.com/demos/typeahead/js/bootstrap-typeahead.js"></script> 
+2

Загрузили скрипт typeahead, прежде чем объявили пользовательский интерфейс jquery. typeahead зависит от пользовательского интерфейса запроса. вот почему реорганизация решила проблему. – TrueCoke

+0

спасибо за объяснение – NealR

Смежные вопросы