2011-06-25 18 views
0

私は結合したい2つの別々のJavascript/jQueryスクリプトを持っています。 1つは、フォームの送信先を決定するタブ付きの検索ボックススクリプトです。もう1つは、単純なJavascript検索スクリプトです。2つのJavascriptとjQueryスクリプトを組み合わせる

タブスクリプトが検索スクリプト内のコンテンツをプルする場所を決定するように、2つのスクリプトを結合します。人々が私が何を記述しようとしているのか理解できることを願っています。

私のJavascriptの検索スクリプトは次のとおりです。私は、検索スクリプトをタブ付き

$(document).ready(function(){ 
    $("#query").keyup(function(e){ 
     if(e.keyCode==13){ 
      var query=$(this).val(); 
      var yt_url='search.php?q='+query; 
      window.location.hash='search/'+query+'/'; 
      $.ajax({ 
       type:"GET", 
       url:yt_url, 
       dataType:"html", 
       success:function(results){ 
        $('#results').html(results); 
       } 
      }); 
     } 
    }); 
}); 

です:

$(document).ready(function() { 
    Tabs.types.init('search'); 
    Tabs.search.init(); 
}); 

var Tabs = { 
    search: { 
     init: function() { 
      jQuery(Tabs.element.form).bind('submit', function (evt) { 
       evt.preventDefault(); 
       Tabs.search.submit(); 
      }); 
     }, 
     submit: function() { 
       var type = Tabs.types.selected; 
       var url = type; 
       window.location.href = url; 
     }, 
    }, 
    types: { 
     init: function (selected) { 
      Tabs.types.selected = selected; 
      jQuery('.' + Tabs.types.selected).addClass('selected'); 
      jQuery(Tabs.element.types).bind('click', function() { 
       Tabs.types.click(jQuery(this)); 
      }); 
     }, 
     click: function (obj) { 
      jQuery(Tabs.element.types).each(function() { 
       if (jQuery(this).hasClass('selected')) { 
        jQuery(this).removeClass('selected'); 
       } 
      }); 
      if (obj.hasClass('web')) Tabs.types.selected = 'search'; 
      if (obj.hasClass('images')) Tabs.types.selected = 'images'; 
      if (obj.hasClass('videos')) Tabs.types.selected = 'videos'; 
      if (obj.hasClass('news')) Tabs.types.selected = 'news'; 
      if (obj.hasClass('social')) Tabs.types.selected = 'social'; 
      obj.addClass('selected'); 
     } 
    }, 
    element: { 
     types: '.type', 
     form: '#search', 
    }, 
}; 

答えて

1

あなたはTabs.types.selectedから選択したタブを取得し、あなたのクエリにそれを知ることができます。例

$(document).ready(function(){ 
    $("#query").keyup(function(e){ 
     if(e.keyCode==13){ 
      var query=$(this).val(); 
      var yt_url='search.php?tab=' + Tabs.types.selected + '&q=' + encodeURIComponent(query); 
      window.location.hash='search/'+query+'/'; 
      $.ajax({ 
       type:"GET", 
       url:yt_url, 
       dataType:"html", 
       success:function(results){ 
        $('#results').html(results); 
       } 
      }); 
     } 
    }); 
}); 

ために私はencodeURIComponentでクエリをエンコードすることをお勧め、または他のユーザーのタイプ&場合と?そして、あなたのページにパラメタとして到達することは決してありません。

また、このコードの前にvar Tabs = { search: { ..etcを置くと、タブが見つかることが確実になります。

+0

@callumこれは別の問題です。あなたは両方の検索、またはそれらのうちの1つだけを動かしたいですか?その行はここにあります。Tabs.search.submit(); – Aristos

関連する問題