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" )尽管数据用于将键值对作为data-foo属性的一部分附加到 dom 元素,但这个位在做什么。但这似乎不是这里的情况?

4

1 回答 1

2

根据文档

  • .data(name, value)是 setter :它附加valuename键上
  • .data(name)是 getter :它返回附加到name键的值

在这种情况下,该值是一个对象(它存储有关绑定到节点的自动完成实例的数据),并且该对象已就地修改。

jQuery 库中的一种常见模式是让函数根据其参数触发不同的操作:

  • $(selector).click(myFunction)将处理程序绑定到节点,$(selector).click()触发click事件
  • 在 jquery-ui 中,$sel.widget('option', name, value)通常允许您在创建小部件后更改选项,$sel.widget('option', name )将允许您获取值
  • ETC ...
于 2012-11-08T11:28:42.290 回答