JQuery autocomplete-Niestandardowy html dla listy wyników
Mam na myśli ten plugin: http://jqueryui.com/demos/autocomplete/
Więc pierwotna struktura wyników to
<ul class="ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner-all">
<li class="ui-menu-item">
<a class="ui-corner-all">item 1</a>
</li>
<li class="ui-menu-item">
<a class="ui-corner-all">item 2</a>
</li>
<li class="ui-menu-item">
<a class="ui-corner-all">item 3</a>
</li>
</ul>
Muszę zrobić linki w środku, aby wyglądały mniej więcej tak:
<a class="myclass" customattribute="something"> The item </a>
Proszę nie mów mi, że jedynym rozwiązaniem jest edycja wtyczki, ponieważ nie chcę tego samego formatu dla wszystkich autouzupełniania na stronie.
3 answers
Należy zastąpić metodę _renderItem
(dla danego autouzupełniania):
$("selector").autocomplete({ ... })
.data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( "<a class='myclass' customattribute='" + item.customattribute + "'>" + item.label + "</a>" )
.appendTo( ul );
};
(zakładając, że items
w twoim source
masz właściwość o nazwie customattribute
)
Jak pokazano w tym przykładzie: http://jqueryui.com/demos/autocomplete/#custom-data
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-12 21:18:59
Jest to również udokumentowane w dokumentacji jQuery-UI autocomplete pod adresem: Jquery-autocomplete.
Sztuczka jest:
- Użyj tego rozszerzenia jquery: Kod github
-
Następnie w opcji autouzupełnianie pass
html:true ...autocomplete({ ... html:true ... }
);
-
Teraz możesz przekazać html (jak
sample) w polu "label" wyjścia JSON dla autouzupełniania.
Jeśli nie wiesz jak dodać plugin do JQuery to:
- Save the plugin(rozszerzenie html) w pliku js lub pobierz plik js.
- dodano już skrypt autouzupełniania jquery-ui na stronie html(lub plik jQuery-ui js). Dodaj ten skrypt wtyczki po tym autouzupełnianie pliku javascript.
Post date: 28th July, 2013
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-31 06:20:21
Możesz spróbować dodać atrybuty zdarzenia "open":
$( ".selector" ).autocomplete({
open: function(event, ui) {
var jArrEl = $("a.ui-corner-all");
jArrEl.addClass("myclass");
jArrEl.attr("customattribute","something");
}
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-12 21:22:52