这个.data函数在这个jQuery自动完成中做什么

时间:2013-02-22 15:08:33

标签: jquery jquery-ui

在下面的这个小片段中,我在网上找到解决我的一个问题,我看到.data(“item.autocomplete”,item)被用作自定义UI自动完成小部件的标准部分。我不能为我的生活弄清楚这里发生了什么。对于覆盖private _renderItem方法,文档非常有限。除了那条线,我得到了一切。也许这是让我感到困惑的链条。我得到.data()作为元素的基本缓存存储。但是,我的jQuery肯定是生锈的。

$('#name_search').autocomplete({
        source: "search/name.php"
        }).data( "autocomplete" )._renderItem = function( ul, item ){
            return $( "<li></li>" )
            //what is this line below?                
            .data( "item.autocomplete", item )
            .append( "<a>" + item.nome + "<br>" + item.cognome + "</a>" )
            .appendTo( ul );
        };

1 个答案:

答案 0 :(得分:1)

.data("item.autocomplete",item) 

这会在自动完成使用的菜单中的生成的li上设置数据(正在呈现的当前建议项)。该数据稍后用于确定您在建议菜单中与哪个项目进行互动(例如,通过select事件或focus事件。)

如果您未设置此数据,则自动填充功能将不会知道特定li与特定建议项目相关联。