wsadqx 2012-07-17 00:38
浏览 240
已采纳

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函数写成无参的,加载的时候就不会调用下面的。但是那样就达不到我的目的了。

  • 写回答

3条回答 默认 最新

  • 夕水溪下 2012-07-17 10:06
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献