1

jquery の ui.autocomplete の renderItem の上書きに関する投稿がいくつかあります。単純に追加するのはどうですか?

私のオートコンプリート検索結果はこのコードでうまく機能していますが、._renderItem 関数を使用すると、選択した結果が入力タグに表示されなくなります。誰かが選択機能を手伝ってくれますか?

私のコード(一部):

$j('.searchInput').autocomplete({
        source: BASE_URL + "include/php/nocache/jquery_search_autocomplete.php",
        select: function(event, ui) {
            // move search term into input
            console.log(ui);
        }
}).data( "autocomplete" )._renderItem = function( ul, item )  {
            var li = $j( "<li class='autoli'></li>" );
            li.data( "item.autocomplete", item );
            if ( ( item.category_title )) {
                li.append( "<a>" + item.category_title + "</a>" )
                li.append( "<a>" + item.title + "</a>" )
                li.append( "<img class='autoimg' src='" + BASE_URL + 'images/category/tnails_75/' + item.category_id  + '.jpg' +  "' />" )
            }
            if ( ( item.search_phrase )) {
                li.append( "<a>" + item.search_phrase + "</a>" )
                li.append( "<a>" + item.title + "</a>" )
                li.append( "<img class='autoimg' src='" + BASE_URL + 'images/category/tnails_75/' + item.category_id  + '.jpg' +  "' />" )
            }
            if ( ( item.web_supplier_sku )) {
                li.append( "<a href='" + item.url +  "'>" + item.web_supplier_sku + "</a>" )
                li.append( "<a href='" + item.url +  "'>" + item.web_name + "</a>" )
                li.append( "<img class='autoimg' src='" + BASE_URL + 'images/sku/tnails_75/' + item.qm_sku  + '.jpg' +  "' />" )
            }
            li.appendTo( ul );
            return li;
};
4

1 に答える 1

0

_renderMenu をお探しですか? これにより、メニューをすべて自分で作成できます。ただし、各項目をループして data() 属性を指定する必要があります。そうしないと機能しません。

これが私のものです:

var userTemplate = Handlebars.compile( $("#userItem").html() );

// ... later in the code: The renderMenu function...
_renderMenu: function(ul, items) {

 items.forEach(function(person) {
  ul.append(
    $( userTemplate({items: person}) ).data("ui-autocomplete-item", person)
  );
 });

 return ul;
}
于 2013-03-18T05:23:54.277 に答える