猴子修补一个jquery ui自动完成渲染项目

时间:2012-11-08 11:24:56

标签: javascript jquery jquery-ui monkeypatching

$("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 );
};

from here

这一点做什么.data( "autocomplete" )我虽然使用数据将键值对作为data-foo属性的一部分附加到dom元素。但这似乎不是这样的情况吗?

1 个答案:

答案 0 :(得分:2)

根据documentation

  • .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 )将允许您获取值
  • 等...