我有两个单独的Javascript / jQuery脚本,我想将它们结合起来。一个是选项卡式搜索框脚本,用于确定表单提交时的目标。另一个是简单的Javascript搜索脚本。
我想组合这两个脚本,以便选项卡式脚本确定从搜索脚本中提取内容的位置。我希望人们能够理解我想要描述的内容。
我的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',
},
};
答案 0 :(得分: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
放在此代码之前,以确保找到了标签。