2011-08-15 8 views
2

사용자가 사용할 검색 유형을 정의하기 위해 탭을 사용하는 Google 순간 스타일 jQuery 검색 스크립트가 있습니다. 그러나 사용자가 무언가를 검색 한 다음 새 검색 유형 (탭 클릭)을 선택하면 텍스트 상자로 이동하여 Enter 키를 눌러 쿼리를 다시 제출해야합니다.클릭시 jQuery 함수 호출

탭 중 하나를 클릭 할 때 loadurl() 기능을 호출하는 것이 좋았지 만이를 수행하고 올바른 탭에 올바른 내용을로드하려면 어떻게해야합니까? 내가 설명하려고하는 것을 이해할 수 있기를 바랍니다.

나의 현재 jQuery 코드는 다음과 같습니다

$(document).ready(function() { 
    function loadurl() { 
     $.ajax({ 
      type: 'GET', 
      url: url, 
      dataType: 'html', 
      success: function (results) { 
       $('results').html(results); 
      } 
     }); 
    } 
    $('[id^=type_]').click(function() { 
     type = this.id.replace('type_', ''); 
     $('[id^=type_]').removeClass('selected'); 
     $('#type_' + type).addClass('selected'); 
    }); 
    $('#type_search').click(); 
    $('input').keyup(function() { 
     query = $(this).val(); 
     url = '/' + type + '/' + query + '/'; 
     window.location.hash = '' + type + '/' + query + '/'; 
     document.title = $(this).val() + ' - My Search Script'; 
     $('results').show(); 
     if (query == '') { 
      window.location.hash = ''; 
      document.title = 'My Search Script'; 
      $('results').hide(); 
     } 
     loadurl(); 
    }); 
}); 

나의 현재 HTML 코드는 다음과 같습니다

<div id='nav'> 
<a id='type_search'>All</a> 
<a id='type_images'>Images</a> 
<a id='type_videos'>Videos</a> 
<a id='type_news'>News</a> 
<a id='type_social'>Social</a> 
</div> 
<input type='text' autocomplete='off'> 

<div id='results'></div> 
+1

당신은 당신의 결과 div..'의 $ ('결과')에 해시'#'를 추가하지 않습니다''$ ('# 결과')해야한다' – ifaour

답변

1

트리거 어떤 탭이 선택 될 때마다 input 상자 keyup 이벤트입니다. 원하는 경우 현재 선택된 탭이 클릭되었는지 여부도 확인할 수 있습니다. 아무 것도 반환하지 않습니다.

$(document).ready(function() { 
    function loadurl() { 
     $.ajax({ 
      type: 'GET', 
      url: url, 
      dataType: 'html', 
      success: function (results) { 
       $('#results').html(results); 
      } 
     }); 
    } 

    $('[id^=type_]').click(function() { 
     type = this.id.replace('type_', ''); 
     $('[id^=type_]').removeClass('selected'); 
     $('#type_' + type).addClass('selected'); 
     $('input').trigger('keyup'); 
    }); 

    $('#type_search').click(); 

    $('input').keyup(function() { 
     query = $(this).val(); 
     if(!query) 
      return; 
     url = '/' + type + '/' + query + '/'; 
     window.location.hash = '' + type + '/' + query + '/'; 
     document.title = $(this).val() + ' - My Search Script'; 
     $('#results').show(); 
     if (query == '') { 
      window.location.hash = ''; 
      document.title = 'My Search Script'; 
      $('#results').hide(); 
     } 
     loadurl(); 
    }); 

}); 
+0

는 그 검사는 입력의 keyup에가 있어야한다 매니저. – ShankarSangoli

+0

편집 된 답변을 보시고 필요한 조건을 추가했습니다. – ShankarSangoli

+0

편집 된 답변을 확인하십시오. – ShankarSangoli