问题描述
|
我有一个jQuery / JavaScript搜索脚本,其中包括一个选项卡式搜索框。目前,我的代码中有些行是完全不必要的。如何简化下面粘贴的所有代码。
我的HTML代码:
<div id=\'nav\'>
<ul>
<li><a href=\'javascript:void(null);\' class=\'type search\'>Web</a></li>
<li><a href=\'javascript:void(null);\' class=\'type images\'>Images</a></li>
<li><a href=\'javascript:void(null);\' class=\'type videos\'>Videos</a></li>
<li><a href=\'javascript:void(null);\' class=\'type news\'>News</a></li>
<li><a href=\'javascript:void(null);\' class=\'type social\'>Social</a></li>
</ul>
</div>
<form id=\'search\' method=\'post\'>
<input type=\'text\' id=\'query\'>
</form>
<div id=\"results\"></div>
我的jQuery / Javascript代码:
$(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();
});
},submit: function () {
var type = Tabs.types.selected;
},},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\',};
$(document).ready(function(){
$(\"#query\").keyup(function(e){
if(e.keyCode==13){
var query=$(this).val();
var yt_url=\'\'+Tabs.types.selected+\'.PHP?q=\'+query;
window.location.hash=\'\'+Tabs.types.selected+\'/\'+query+\'/\';
$.ajax({
type:\"GET\",url:yt_url,dataType:\"html\",success:function(results){
$(\'#results\').html(results);
}
});
}
});
});
解决方法
例如,
您可以统一CSS类和类型,以便仅编写Typs.types.selected = obj.class