2
這是我的代碼snippt。但是代碼在內循環之後破壞了。但沒有錯誤信息。 有什麼想法?代碼錯誤在哪裏
謝謝。
var lastnames = document.getElementsByClassName('box_nachname');
var firstnames = document.getElementsByClassName('box_vorname');
var teilnehmer = document.getElementsByClassName('select');
observers = [];
// iterate over nachname array.
for (var i = 0; i < lastnames.length; i++) {
// Create an observer instance.
observers[i] = new Observer();
// Subscribe oberser object.
for(idx in teilnehmer) {
if(teilnehmer[idx].id.split("_")[0].toLowerCase() !== "zl") {
var anynum = function(element) {
observers[i].subscribe(element, updateTeilnehmerSelectbox);
}(teilnehmer[idx]);
}
}
//on blur the Observer fire the updated info to all the subscribers.
var anynumNachname = function(j, element, value, observer) {
cic.addEvent(lastnames[j], 'blur', observer.fire(element, value));
} (i, lastnames[i], lastnames[i].value, observers[i]);
cic.addEvent(firstnames[i], 'blur', function(element, value, observer) {observer.fire(element, value)}(lastnames[i], lastnames[i].value, observers[i]));
}
關於在括號包裝'anyNachname':有一個JSLint選項來「要求立即調用周圍的parens」,它需要在作業的整個右側都有parens,而不僅僅是函數。所以圍繞函數本身的parens是多餘的;我想你正在考慮包裝整個調用? – 2010-05-03 17:22:58
不,我習慣於包裝函數定義本身,因爲當您的表達式以函數定義開始時,它是必需的。我想,當明確的函數定義只是一個r值時,不需要parens。 – Pointy 2010-05-03 17:43:25
爲了澄清該評論:您需要明確地讓Javascript解析器明白,您不是在爲了立即調用而需要匿名函數的情況下聲明函數。 (我知道你知道,@熊,但澄清是爲後人:-) – Pointy 2010-05-03 17:50:15