1
$("selector").autocomplete({ ... }).data( "autocomplete" )._renderItem = function( ul, item ) {
    return $( "<li></li>" )
        .data( "item.autocomplete", item )
        .append( "<a>" + item.label + "<br>" + item.desc + "</a>" )
        .appendTo( ul );
};

ここから

属性.data( "autocomplete" )の一部としてキーと値のペアを dom 要素にアタッチするためにデータが使用されていましたが、このビットは何をしているのでしょうか。data-fooしかし、ここではそうではないようですか?

4

1 に答える 1

2

ドキュメントに従って:

  • .data(name, value)はセッターです:キーvalueに取り付けますname
  • .data(name)getter :nameキーに付加された値を返します

この場合、値はオブジェクト (ノードにバインドされたオートコンプリート インスタンスに関するデータを格納する) であり、このオブジェクトはその場で変更されます。

関数がその引数に応じて異なるアクションをトリガーするのは、jQuery ライブラリの一般的なパターンです。

  • $(selector).click(myFunction)ハンドラーをノードにバインドし、イベントを$(selector).click()トリガーしますclick
  • jquery-ui では、$sel.widget('option', name, value)通常、ウィジェットが作成された後にオプションを変更$sel.widget('option', name )できるようになり、値を取得できるようになります
  • など...
于 2012-11-08T11:28:42.290 に答える