2014-02-09 92 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完全被破壞了。

相關問題