JS小问题

JS文件:
var Visit = {

doLoad: function(){
for(var i = 1; i < 9; i ++){
var option = document.getElementById("Option"+i);
option.onchange = Visit.doOptionChange(i);
}
},

doOptionChange: function(count){
aler(count);
}

};

HTML中包含:



....
有8个

我这样写,在页面加载的时候会自动加载doLoad方法,但我还没操作,应该不会调用doOptionChange函数才对啊,怎么页面加载的同时他就调用了doOptionChange函数了呢! 而当我点checkbox的时候又没反应了。

我的目的是想当我点击页面其中一个checkbox的时候,就能知道我点的是哪一个checkbox(最好是知道对应Id),HTML页面已经不能更改,只能在JS中写;望赐教!小弟先行谢过。。。

注:我这只是写出个大概意思,大家不用看获取对象的问题,对象我已经都能获取并操作它。还有一点就是 我写成下面这样
option.onchange = Visit.doOptionChange;
然后那个doOptionChange函数写成无参的,加载的时候就不会调用下面的。但是那样就达不到我的目的了。

option.onchange = Visit.doOptionChange(i);
你应该在这里加一个闭包,否则返回的i永远都是9
应该是这样的
option.onchange = (function(_i){return Visit.doOptionChange(_i)})(i)这样的话 你那个问题应该能解决了

Visit.doOptionChange(i);
这样写是调用。。
如果你又想绑定,又想传参数用 new Function('Visit.doOptionChange(1)')这样看看。

而且不推荐这样。
如果你只是想知道你点击的是哪个checkbox
那么你在函数里面写:
var obj = event.srcElement;
alert(obj.id)

就是你要的结果。

我想你为什么一定要自动加载那个方法呢,用jquery先获取checkbox对象,然后做一个click事件就行了