2013-05-19 2 views
0
 $(function(){ 

     var orthoObjs = {}; 
     var orthoNames = []; 


     var throttledRequest = _.debounce(function(query, process){ 

      $.ajax({ 
       url: 'json/ortho4.json' 
       ,cache: false 
       ,success: function(data){ 


       orthoObjs = {}; 
       orthoNames = []; 


       _.each(data, function(item, ix, list){ 



       orthoNames.push(item.searchPhr); 


         orthoObjs[ item.searchPhr ] = item; 

        }); 


        process(orthoNames); 
       } 
      }); 
     }, 300); 


     $(".typeahead").typeahead({ 
      source: function (query, process) { 


       throttledRequest(query, process); 

      } 

     ,updater: function (item) { 

     var url = "orthoObjs[item.searchUrl]"; 

     window.location = url; 

Каков наилучший способ получить перенаправление на работу? Я видел подобные вопросы, но не могу заставить это работать. Документация по typeahead невелика. Я использую underscore.js для каждой функции. Просто попробуйте простой поисковый запрос, который перенаправляется при выборе пользователем.bootstrap typeahead url/redirect

ответ

1

Я действительно получил это, чтобы работать. Мне немного помогло ... но вот оно. Существует JSON файл ..

[ 
    { "id":1, "searchUrl":"invisalign.html", "name":"invisalign" } 
    ,{ "id":2, "searchUrl":"invisalign.html", "name":"invisalign teen" } 
    ,{ "id":3, "searchUrl":"clearbraces.html", "name":"clear braces" } 
] 

И HTML код ....

много хороших вещей здесь .. http://fusiongrokker.com/post/heavily-customizing-a-bootstrap-typeahead

И поиск кода ..

<form method="post" id="myForm" class="navbar-search pull-left"> 
     <input 
      type="text" 
      class="search-query typeahead" 
      placeholder="Search Our Website" 
      autocomplete="off" 
      data-provide="typeahead" 
      /> 
      <i class="fa-icon-search icon-black"></i> 
</form> </li> 

$(function(){ 

     var bondObjs = {}; 
     var bondNames = []; 

     $(".typeahead").typeahead({ 
     source: function (query, process) { 

      //get the data to populate the typeahead (plus an id value) 
      $.ajax({ 
      url: '/json/bonds.json' 
      ,cache: false 
      ,success: function(data){ 

       bondObjs = {}; 
       bondNames = []; 


       _.each(data, function(item, ix, list){ 


       bondNames.push(item.name); 


       bondObjs[ item.name ] = item.searchUrl; 
       }); 


       process(bondNames); 
      } 
      }); 
     } 
     , updater: function (selectedName) { 

      window.location.href =bondObjs[ selectedName ]; 

     } 
     }); 
    }); 
    </script>