我正试图在mootools 1.11中进行自动完成。一切正常,但我不能检查是否
this.selectel.getNext()
是null或者其他什么。 Firebug为每个元素输出[li],为通过getNext()输出的非现有元素输出[null];
我看到有些人正在做:
if(this.selectel.getNext()) {...
但那不能在这里工作,因为我总是得到空对象。一定非常愚蠢的事情必须在这里......
这里有一些围绕这个问题的代码:
this.selectel = $$('ul.results').getFirst();
...
onCommand: function(e, mouse) {
if (e.key && !e.shift) {
switch (e.key) {
case 'up':
this.selectel.getPrevious().addClass('active');
if(this.selectel) this.selectel.removeClass('active');
this.selectel = this.selectel.getPrevious();
e.stop();
return;
case 'down':
var test = this.selectel.getNext();
console.log(typeof(test));
if(this.selectel.getNext() != null) { // not working
this.selectel.getNext().addClass('active');
if(this.selectel) this.selectel.removeClass('active');
this.selectel = this.selectel.getNext();
}
e.stop();
return;
}
}
答案 0 :(得分:0)
你要两次调用getNext()。
替换这些行:
if(this.selectel.getNext() != null) { // not working
this.selectel.getNext().addClass('active');
if(this.selectel) this.selectel.removeClass('active');
this.selectel = this.selectel.getNext();
}
使用:
if(el = this.selectel.getNext() != null) { // not working
el.addClass('active');
if(this.selectel) this.selectel.removeClass('active');
this.selectel = el;
}