Использование getNext () с Mootools - PullRequest
       0

Использование getNext () с Mootools

0 голосов
/ 29 сентября 2010

Я пытаюсь сделать автозаполнение в mootools 1.11. Все работает нормально, но я просто не могу проверить, если

this.selectel.getNext()

равно нулю или как угодно. Firebug выводит [li] для каждого элемента и [null] для несуществующего элемента, который выводится через getNext ();

Я видел, что некоторые люди просто делают:

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;

        }
    }

1 Ответ

0 голосов
/ 29 сентября 2010

Вы вызываете 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...