2013-07-10 61 views
23

因爲我從jQueryUI的1.8.1切換到1.10.x我意識到我的自定義項目渲染器不工作了:jQueryUI版本1.10自動完成 - 如何設置_renderItem?

Uncaught TypeError: Cannot set property '_renderItem' of undefined 

什麼是新版本jQueryUI的不同?

這裏我的代碼:

$("#lexicon-search-input") 
     .autocomplete({ 
     ... 
     }).data("autocomplete")._renderItem = customItemRenderer; 

這是工作jQueryUI的1.8.1,但不會對1.10.3。

還有一件事:我使用多個自動填充字段。因此,我無法在全球進行設置。例如,$ .ui.autocomplete.prototype._renderItem = customRenderItem可以工作,但會影響我所有的自動完成。

回答

63

使用ui-autocomplete應該解決您的問題。

$("#lexicon-search-input") 
    .autocomplete({ 
    ... 
    }).data("ui-autocomplete")._renderItem = customItemRenderer; 

documentation關於如何。如果你想創建與yourClass類中的多個自動完成的_renderItem功能只是用它在createevent

使用 _renderItem(尤其是源代碼)

教程

$('.yourClass').autocomplete({ 
    create: function() { 
     $(this).data('ui-autocomplete')._renderItem .... 
    } 
}); 

關於該主題,請參閱我的另一個answer

+0

非常感謝。我沒有意識到命名已從「自動完成」更改爲「ui-autocomplete」。 – Marco

+0

沒關係,不客氣;) – SirDerpington