请高手解释下,这段js,谢谢!

functionActiveTab(_tab,_content,isAjax,eventType){this.tabs=[];this.tabs_lis=[];this.... function ActiveTab(_tab, _content, isAjax, eventType){
this.tabs = [];
this.tabs_lis = [];
this.contents = [];
this.tabsDiv = document.getElementById(_tab);
this.contDiv = document.getElementById(_content);
this.last = -1;
this.isAjax = isAjax || false;
this.eventType = eventType || "click";
this.init(_tab, _content);
this.timer;
}

ActiveTab.prototype = {
addEvent: function(){
var tabs = this.tabs;
for(var i=0; i<tabs.length; i++){
tabs[i].flag = i;
tabs[i].self = this;
switch(this.eventType){
case "click":
tabs[i].onclick = function(){
this.self.shiftContent(this.flag);
return false;
}
break;
case "mouseover":
tabs[i].onmouseover = function(){
this.self.shiftContent(this.flag);
return false;
}
tabs[i].onclick = function(){
return false;
}
break;
}
}
},

shiftContent: function(current){
if(this.last >=0){
this.tabs_lis[this.last].className = "";
this.contents[this.last].style.display = "none";
}
this.tabs_lis[current].className = "on";
this.contents[current].style.display = "block";
if(this.isAjax){
Ajax.hiddenLoading();
this.callContent(this.tabs[current].href, this.contents[current]);
}
this.last = current;

},

callContent: function(_url, _targetNode){
var xhr = Ajax.createXHR();
xhr.open("GET", _url, true);
xhr.onreadystatechange = function(){
if(xhr.readyState == 1){
Ajax.showLoading();
}
if(xhr.readyState == 4){
if(xhr.status == 200){
_targetNode.innerHTML = xhr.responseText;
Ajax.hiddenLoading();
}
}
};
xhr.send(null);
},

init: function(_tab, _content){
this.tabs = this.tabsDiv.getElementsByTagName("A");
this.tabs_lis = this.tabsDiv.getElementsByTagName("li");
var elems = this.contDiv.childNodes;
for(var i=0; i<elems.length; i++){
if(elems[i].nodeType == 1){
elems[i].style.display = "none";
this.contents.push(elems[i]);
}
}
this.addEvent();
this.shiftContent(0);
},

autoActive: function(_time){
var self = this;
this.start(_time);
this.tabsDiv.onmouseover = this.contDiv.onmouseover = function(){
self.stop();
}
this.tabsDiv.onmouseout = this.contDiv.onmouseout = function(){
self.start(_time);
}
},
start: function(_time){
var self = this;
this.timer = setInterval(function(){
var current = self.last + 1;
if(current >= self.tabs.length) current = 0;
self.shiftContent(current);
}, _time);
},
stop: function(){
clearInterval(this.timer);
}
}
侧重js结构,我看过很多js都这样写的,请问什么意思呢?从ActiveTab.prototype 开始就有点糊涂了。。
展开
 我来答
地底生物
2010-07-23 · TA获得超过1054个赞
知道小有建树答主
回答量:239
采纳率:0%
帮助的人:114万
展开全部
对象.prototype.方法名=function(){} 这种结构是给JS对象添加内部元素

同时添加多个,变相的写法:
对象.prototype={
方法名:function(){},
方法名:function(){},
...
}
举例:
对象:
function node(id){
this.id=id;
this.name;
}
为对象添加方法:
node.prototype={
init:function(name){
this.name = name;
}
destroy:function(){
this.id=undefined;
this.name=undefined;
}
}
///调用
window.onload = function(){
var node = new node("id");
alert(node.id);
node.init("name");
alert(node.name);
node.destroy();
alert(node.id);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乌微月2S
2010-07-23 · TA获得超过5037个赞
知道大有可为答主
回答量:5361
采纳率:42%
帮助的人:2907万
展开全部
ActiveTab.prototype

这个你明白吗??property这个类似于集成,这样添加的方法,在ActiveTab的实例中(就是new出来的对象)都会有该方法。
ActiveTab.prototype = {
addEvent: function(){
给ActiveTab类添加事件,然后是分支。这个写法相当于ActiveTab.prototype.addEvent=function(){
}只不过他写的时候把这些property方法都给包含进来了

给每一个table添加click mouseover等事件,事件的响应函数在下面。
有问题可以继续Hi我!
这是一个ajax的下拉菜单吧!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式