2012-11-07 2 views
2

현재 코드는 jQuery 1.7.x를 사용하고 있습니다. jQuery 1.8로 업그레이드하고 싶지만 내 자동 완성 기능에 문제가있다. 동일한 코드로 2 개의 jsfiddles를 만들었습니다. 한 예에서는 올바르게 작동하지만 다른 예로는 제대로 작동하지 않습니다. 주된 문제는 검색하고 클릭 할 때 경고 상자에 무엇이 클릭되었는지 말하고 말해야한다는 것입니다. 이전 jQuery에서는 작동하지만 1.8에서는 작동하지 않습니다.jQuery 1.8 범주 완성 자동 완성

$.widget("custom.catcomplete", $.ui.autocomplete, { 
    _renderMenu: function(ul, items) { 
     var self = this, 
      currentCategory = ""; 
     $.each(items, function(index, item) { 
      if (item.category != currentCategory) { 
       ul.append("<li class='ui-autocomplete-category search-dropdown-category'>" + item.category + "</li>"); 
       currentCategory = item.category; 
      } 
      self._renderItem(ul, item); 
     }); 
    } 
}); 
$(document).ready(function() { 
var data = [ 
    { 
    label: "anders", 
    category: "aa"}, 
{ 
    label: "andreas", 
    category: "aa"}, 
{ 
    label: "antal", 
    category: "aa"}, 
{ 
    label: "annhhx10", 
    category: "Products"}, 
{ 
    label: "annk K12", 
    category: "Products"}, 
{ 
    label: "annttop C13", 
    category: "Products"}, 
{ 
    label: "anders andersson", 
    category: "People"}, 
{ 
    label: "andreas andersson", 
    category: "People"}, 
{ 
    label: "andreas johnson", 
    category: "People"} 
]; 

$("#search_input").catcomplete({ 
    source: data, 
    select: function(event, ui) { 
     alert(ui.item.label); 
    } 
}); 


});​ 

누구든지 거래가 무엇인지 알고 : http://jsfiddle.net/TPWXh/3/ 여기

코드입니다 - 여기 http://jsfiddle.net/u2GEe/1/

깨진, 1.8 버전입니다 - 여기

는 작업, 1.7 버전은 무엇입니까?

+0

"item : undefined";/ – Stefan

답변

5

나는 며칠을 보낸 후 마침내 알아 냈습니다. 모든 것이 다시 잘 작동, 나는 그것을 변경 후

self._renderItem(ul, item); 

지금 필요

self._renderItemData(ul, item); 

가 될 : 그것은 한 줄이었다. 매우 실망합니다.

+0

jquery ui 1.8.20을 사용하고 있습니다. 사용 방법은 다음과 같습니다 : self._renderItem (ul, item); –

+0

아니요, 최신 jQuery UI - 1.10-1.11에서 작동하지 않습니다. – NinaNa

0

select 콜백에 값을 기록하면 itemundefined 인 것으로 나타났습니다.

$("#search_input").catcomplete({ 
    source: data, 
    select: function(event, ui) { 
     console.log(event, ui); // DEBUG 
     alert(ui.item.label); 
    } 
}); 

jQuery를 1.8.2와 jQuery를 UI 1.9.1가 나던 함께 작동하지만 jQuery를 UI 대신 1.9.1의 1.8.2를 사용하여 작업 그것을 가지고 왜 확실하지.

시도해주세요. here