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

関連する問題