问题描述
|
我想结合两个单独的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\',};
解决方法
您可以从
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);
}
});
}
});
});
建议您使用query4ѭ编码查询,否则,如果您的用户键入&和?和其他符号,然后再也不会以参数形式到达您的页面。
还要在此代码前放置ѭ5,以确保找到选项卡。