2021. 5. 12. 13:22

[jQuery] 버전 별 autocomplete _renderItem 차이

JQuery-ui 버전에 따라 autocomplete 사용법이 다름.

 

[1.12.0]

jquery 1.7.x 버전 이상을 써야 하고 최신버전 3.2.1 에서도 동작한다.

.autocomplete( "instance" )._renderItem 을 사용할 수 있고

.data("ui-autocomplete")._renderItem 을 사용할 수도 있지만 old style

 

.autocomplete( "instance" )._renderItem = function( ul, item ) {

    return $( "<li>" ).append( "<div>" + gubun + S9HL.highlight(label, searched) + "</div>" ).appendTo( ul );

)};

 

[1.11.x]

jquery 1.6.x ~ jquery 2.x 버전까지 동작

.autocomplete( "instance" )._renderItem 을 사용할 수 있고

.data("ui-autocomplete")._renderItem 을 사용할 수도 있지만 old style

 

.autocomplete( "instance" )._renderItem = function( ul, item ) {

    return $( "<li>" ).append( "<div>" + gubun + S9HL.highlight(label, searched) + "</div>" ).appendTo( ul );

혹은

    return $( "<li>" ).append(gubun + S9HL.highlight(label, searched)).appendTo( ul );

)};

 

값을 <div> 혹은 <a> 둘 다 동작하는 것으로 보이지만 <div> 가 더 좋다

<div>를 쓰지 않아도 동작한다.

[1.8.x]

jquery 1.7 버전 이상을 쓸 수 없다 (deplicate 된 함수 때문이다)

.data("ui-autocomplete")._renderItem 을 사용해야 한다.

 

.data("autocomplete")._renderItem = function(ul, item ) {

    return $( "<li>" ).data( "item.autocomplete", item ).append( '<a>' + S9HL.highlight(item.label, searchQuery) + '</a>' ).appendTo( ul );

};

값은 반드시 <a> 로 싸야 한다.