2011-06-25 53 views
0

我有兩個單獨的Javascript/jQuery腳本,我想合併。一種是標籤式搜索框腳本,用於確定表單提交時的目的地。另一個是一個簡單的Javascript搜索腳本。結合兩個Javascript和jQuery腳本

我想合併這兩個腳本,以便選項卡式腳本確定從搜索腳本中提取內容的位置。我希望人們能夠理解我想要描述的內容。

我的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這是一個不同的問題。你希望同時進行搜索,還是隻有其中一個?這樣做的行在這裏Tabs.search.submit(); – Aristos