我在事件中调用成员函数,报showCheckedNums is not a function错误。具体代码如下
<!DOCTYPE html PUBLIC "-//W3C//Dth XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/Dth/xhtml1-transitional.dth">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta charset="UTF-8">
<head>
</head>
<body>
<input type="checkbox" value="1" id="check0" name="ck" />num1
<input type="checkbox" value="2" id="check1" name="ck"/>num2
<input type="checkbox" value="4" id="check2" name="ck"/>num3
<input type="checkbox" value="8" id="check3" name="ck"/>num4
<hr />
选择结果:<label id="ckRes">0</label>
<hr />
</body>
</html>
<script>
function ckCheck (mask,name) {
this.mask = mask;//用于恢复默认值
this.name = name;//用checkbox选择器,值为checkbox的name值
this.temp = mask;//用于操作
this.nodes = [];
}
ckCheck.prototype={
start:function () {
this.nodes = document.getElementsByName(this.name);
this.default();
this.addEvtLisener();
},
showCheckedNums:function(argument){
document.getElementById("ckRes").innerHTML= this.temp;
},
default:function (argument) {
for(var j = 0;j<this.nodes.length ;j++){
//初始化checkbox
this.nodes[j].checked = this.nodes[j].value & this.mask ;//1
};
this.showCheckedNums();
},
addEvtLisener:function(){
for(var i = 0; i < this.nodes.length; i++){
this.nodes[i].addEventListener('click', function (e) {
//如果选中:做或运算,否则做按位异或
e.target.checked ? this.temp|=e.target.value:this.temp^=e.target.value;
//console.log(typeof this.showCheckedNums);
this.showCheckedNums();
})
}
},
}
var obj = new ckCheck(7,"ck")
obj.start();
</script>
即在点击checkbox的时候报错。不知道为什么,还请大神能够帮忙解答。