Пользовательские данные / макет с автозаполнением - PullRequest
2 голосов
/ 11 сентября 2010

Я пытаюсь добавить <li> в конце набора результатов, но безуспешно. Я нахожусь в неведении относительно длины набора результатов, так как он может меняться в зависимости от ввода, поэтому мой счетчик, который я настроил, работает, только если результаты достигают предела.

Документация, которую я нашел на сайте jquery ui , помогла мне подойти к этому вопросу.

Я заранее запустил счетчик и установил условия для сортировки некоторых данных на основе переменной окна. Вот с чем я работаю:

$('#q').autocomplete({...}).data( "autocomplete" )._renderItem = function( ul, item ) {
        if(autoCount == 0){
           $('<img src="/ac-top-arrow.png" class="ac-top-arrow" />').appendTo(ul);
        }

        if(item.window){
            var inLi = $('<li class="in-window"></li>')
            .data( "item.autocomplete", item )
            .append( '<a><img src="'+item.thumb+'" width="55" height="75" class="imgposter" /><div class="movie-info"><h1>'+item.title + '</h1> <span>('+item.year+')</span><br>' + '<h2>Watch now</h2></div></a>');

            if($('ul.ui-autocomplete li.in-window').length){
                $('.in-window:last').after(inLi);
            } else if($('ul.ui-autocomplete li.out-window').length) {
                $(inLi).addClass('first-in-win');
                $('.out-window:first').before(inLi);
            } else {
                $(inLi).addClass('first-in-win');
                $(inLi).appendTo('ul.ui-autocomplete');
            }
        }
        else {
            var outLi = $('<li class="out-window"></li>')
            .data( "item.autocomplete", item )
            .append( '<a><h1>'+item.title + '</h1> <span>('+item.year+')</span></a>');

            if($('ul.ui-autocomplete li.out-window').length){
                $('.out-window:last').after(outLi);
            } else {
                $(outLi).addClass('first-out-win');
                $(outLi).appendTo(ul);
            }
            if(autoCount == 5){
                $(outLi).addClass('after-top');
            }
        }


        autoCount++;

        if(autoCount == 6){
            $('<li class="bottom"><a href="">> See All Results</a></li>').appendTo(ul);
            autoCount = 0;
        }
    };

1 Ответ

1 голос
/ 14 сентября 2010

Это выполняет то, что я хотел:

'open': function(e, ui) {$('.ui-autocomplete').append('<li class="bottom ui-menu-item"><a href="#" id="see-more-results">> See All Results</a></li>');}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...