javascript问题
目的:学写一个javascript类,来实现[color=red]星级投票[/color]系统的使用。
问题:[color=red]当用该类new一个没有问题,如果连续new两个以上的对象,只有最后一个对象起作用[/color]。
问题范围:本人对javascript类不是很明晰,可能是[color=blue]类写得有问题,或者类里面的方法问题[/color],再多次new对象时候,是不是方法会共用了?
类代码:
function AgStar(pid,newid,tag){
var starno = 5;
var selectno = 2;
var nid = newid;
var ag = new Array('差','一般','还行','不错','力荐');
//this.pid = pid;
init = function(){
var div = document.createElement('div');
var str = '';
str += "
for(var i = 0; i < starno; i++){
str += "★";
}
str += "
div.innerHTML = str;
$(pid).appendChild(div);
setStar(selectno);
}
setStar = function(n){
for(var i = n+1; i < starno; i++){
$(nid+i).style.color = "#ccf";
}
for(i = 0; i <= n; i++){
$(nid+i).style.color = "#669";
}
}
out = function(){
this.setStar(selectno);
}
selectStar = function(n){
selectno = n;
this.setStar(n);
}
this.getScore = function(){
return selectno+1;
}
init();
}
调用代码:
var ag = new AgStar('showDiv','service','服务');
var ag2 = new AgStar('showDiv','efficency','效率');
结果:服务的不能动,没有反应;而效率的可以正常使用。
[b]问题补充:[/b]
javascript问题
目的:学写一个javascript类,来实现[color=red]星级投票[/color]系统的使用。
问题:[color=red]当用该类new一个没有问题,如果连续new两个以上的对象,只有最后一个对象起作用[/color]。
问题范围:本人对javascript类不是很明晰,可能是[color=blue]类写得有问题,或者类里面的方法问题[/color],再多次new对象时候,是不是方法会共用了?
类代码:
function AgStar(pid,newid,tag){//pid是显示地方,newid是这个功能的id,tag是显示标签
var starno = 5;
var selectno = 2;
var nid = newid;
var ag = new Array('差','一般','还行','不错','力荐');
//this.pid = pid;
init = function(){
var div = document.createElement('div');
var str = '';
str += "
for(var i = 0; i < starno; i++){
str += "★";
}
str += "
div.innerHTML = str;
$(pid).appendChild(div);
setStar(selectno);
}
setStar = function(n){
for(var i = n+1; i < starno; i++){
$(nid+i).style.color = "#ccf";
}
for(i = 0; i <= n; i++){
$(nid+i).style.color = "#669";
}
}
out = function(){
this.setStar(selectno);
}
selectStar = function(n){
selectno = n;
this.setStar(n);
}
this.getScore = function(){
return selectno+1;
}
init();
}
调用代码:
var ag = new AgStar('showDiv','service','服务');
var ag2 = new AgStar('showDiv','efficency','效率');
结果:服务的不能动,没有反应;而效率的可以正常使用。
[b]问题补充:[/b]
全部改成了this,变量为公共的,方法也为公共的,但是还是不能使用。