我是一个新手,刚学js来着,看一本 深入浅出js 的书之后,就换一种和书上不同的方式来创建对象,搞了一天一夜了,直到现在,都还是没有头绪。请各位大神帮忙。感激涕零啊积分实在不多,望见谅。
function ges( p ){
this.pos = p;//container;
this.currentClass='current';
this.currentLink = null;
};
ges.prototype={
init:function(){
if( !document.getElementById || !document.createTextNode ){
return;
}
var navId = document.getElementById( this.pos );
if( !navId ){
return;
}
var navLinks = navId.getElementsByTagName( 'a' );
alert( navLinks.length );
for( var i=0; i<navLinks.length-1; i++ ){
if( this.currentLink != null ){
this.currentLink = navLinks[1];
}
DOMHelp.addEvent( navLinks[i], 'click', this.getTarget, false );
}
if( !this.currentLink ){
this.currentLink = navLinks[1];
this.showBg( this.currentLink );
}
}, getTarget:function( e ){
var tar = DOMHelp.getTarget( e );
this.showBg( tar );
},
showBg:function( o ){
DOMHelp.cssjs( 'remove', this.currentLink, ges.currentClass );
DOMHelp.cssjs( 'add', o, this.currentClass );
this.currentLink = o;
}
};在网页中的代码是: <script type="text/javascript">
var n = new ges( 'nav' );
DOMHelp.addEvent( window, 'load', n.init, false );
</script>网页中的 ‘nav’参数形同虚设,没有作用。。
当把js 中的 this.pos 换成 'nav' 却出现 this.showBg is not function.!!!高手们帮帮忙
function ges( p ){
this.pos = p;//container;
this.currentClass='current';
this.currentLink = null;
};
ges.prototype={
init:function(){
if( !document.getElementById || !document.createTextNode ){
return;
}
var navId = document.getElementById( this.pos );
if( !navId ){
return;
}
var navLinks = navId.getElementsByTagName( 'a' );
alert( navLinks.length );
for( var i=0; i<navLinks.length-1; i++ ){
if( this.currentLink != null ){
this.currentLink = navLinks[1];
}
DOMHelp.addEvent( navLinks[i], 'click', this.getTarget, false );
}
if( !this.currentLink ){
this.currentLink = navLinks[1];
this.showBg( this.currentLink );
}
}, getTarget:function( e ){
var tar = DOMHelp.getTarget( e );
this.showBg( tar );
},
showBg:function( o ){
DOMHelp.cssjs( 'remove', this.currentLink, ges.currentClass );
DOMHelp.cssjs( 'add', o, this.currentClass );
this.currentLink = o;
}
};在网页中的代码是: <script type="text/javascript">
var n = new ges( 'nav' );
DOMHelp.addEvent( window, 'load', n.init, false );
</script>网页中的 ‘nav’参数形同虚设,没有作用。。
当把js 中的 this.pos 换成 'nav' 却出现 this.showBg is not function.!!!高手们帮帮忙
解决方案 »
- 这个div的竖向滚动条怎么不出来啊?
- 菜鸟问题,请求帮助
- 请教各位XDJM,用普通按钮来代替input file控件来实现文件的上传如何实现?
- [PHP]如何在不reload的情況下,將javascript的variable 當成 php variable 來使用??
- 有一组<input>文字输入框,name=q[],如何为这些<input>输入框里的文字定义不同的颜色
- 不用view-source: 如何得到一个网页的源码
- asp中replace的作用
- 送分啦,一个按钮背景变换问题!欢迎大家探讨!^Q^
- 帮我看一下这个javascript
- 我form中一select中的option被选中,在提交后,如何用javascript来保存选中的那个option
- JS如何获取未定义的高度
- 谁有这样的JS,会员登陆提示
{
f()
}
x(n.init)这样init里面的this指的明显不是n自己了
DOMHelp={
addEvent: function(elm, evType, fn, useCapture){
if (elm.addEventListener){
elm.addEventListener(evType, fn, useCapture);
return true;
} else if (elm.attachEvent) {
var r = elm.attachEvent('on' + evType, fn);
return r;
} else {
elm['on' + evType] = fn;
}
},
}
init:function(){
if( !document.getElementById || !document.createTextNode ){
return;
}
var navId = document.getElementById( this.pos );
if( !navId ){
return;
}
var navLinks = navId.getElementsByTagName( 'a' );
alert( navLinks.length );
for( var i=0; i<navLinks.length-1; i++ ){
if( this.currentLink != null ){
this.currentLink = navLinks[1];
}
DOMHelp.addEvent( navLinks[i], 'click', this.getTarget, false );
}
if( !this.currentLink ){
this.currentLink = navLinks[1];
this.showBg( this.currentLink );
}
},
把init的所有this换成self