0

私の問題の 1 つを解決するために Web で見つけた以下の小さなスニペットでは、.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 );
        };
4

1 に答える 1

1
.data("item.autocomplete",item) 

liこれにより、オートコンプリートが使用するメニューで生成された にデータ (レンダリングされている現在の候補アイテム) が設定されます。そのデータは後で、提案メニューで操作しているアイテムを特定するために使用されます (たとえば、selectイベントまたはイベントを介して)。focus

このデータを設定しないと、オートコンプリートはli、特定のアイテムが特定の提案アイテムに関連付けられていることを認識しません。

于 2013-02-22T15:17:54.010 に答える