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