2014-02-09 88 views
0

我使用后期绑定将onClick事件分配给复选框(样式为点)。我的第一项任务[位于https://github.com/farfromunique/vampirrePoints/blob/master/events.js#L264]顺利完美,并反应如预期 - 所有的点都以此为自己的onClick:为什么这个onClick事件没有被正确应用?

/* https://github.com/farfromunique/vampirrePoints/blob/master/main.js#L440 */ 
allDots[i].onclick = function() { 
    if (this.checked) { 
     decrementCounter(1); 
    } else { 
     incrementCounter(1); 
    }; 
} 

然而,当Step11()被触发,并freebieDotSetup()叫,只复选框的一些让他们的onClicks更新。具体来说,sta1, sta2, sta3, sta4, sta5(也可能是其他人)保持其初始价值。

我已经尝试在分配过程中放置​​console.log()语句,它看起来像分配发生,但它不“粘”。为什么这不起作用?

代码引用(全幅):https://github.com/farfromunique/vampirrePoints

根据要求,非工作的jsfiddle:http://jsfiddle.net/farfromunique/mS4Lp/

注:菜单是在错误的一边,不能正常推进,没有的“点”(复选框)是可点击的,所以功能不可测试。我强烈怀疑我的代码不是跨浏览器兼容的,但这对我来说不是优先考虑的事情。

+2

请为您的问题创建一个jsfiddle。 –

+0

@APaul我很难受到这个请求的令人难以置信的沮丧。如果我的JS,CSS和HTML是100%完整,通用兼容和工作的,这不会是一个大问题......但我不需要帮助。我的JSFiddle-ifiedpage根本不起作用,我甚至不知道从哪里开始尝试使其工作。我认为这让我不值得你关注。 – Farfromunique

+0

提供一个非工作小提琴,我没有要求一个工作小提琴。克里特岛小提琴分享它并陈述问题。如果我们了解您的问题,我们将如何帮助您? –

回答

0

的溶液:在功能freebieDotSetup(),我这样做:

for (i=0;i<attributeDots.length;i++) { 
    attributeDots[i] = allDots[i]; 
} 
... 
for (i=0;i<abilityDots.length;i++) { 
    abilityDots[i] = allDots[i+attributeDots.length]; 
} 
... 
for (i=0;i<disciplineDots.length;i++) { 
    disciplineDots[i] = allDots[i+abilityDots.length]; 
} 
... 

由于我正在使用前一组的长度,它偶尔会覆盖前面的值(由于基是短)。我对此进行了更正:

startPos = startPos + attributeDots.length; 

for (i=0;i<abilityDots.length;i++) { 
    abilityDots[i] = allDots[i+startPos]; 
} 

每次将上一组的长度添加到startPos。做这个改变解决了我的问题。

...但JSFiddle完全被破坏了。

相关问题