Javascript monkey修补一个jquery ui自动完成渲染项 $(“选择器”).autocomplete({…}).data(“autocomplete”)。\u renderItem=函数(ul,项){ 返回$(“”) .data(“item.autocomplete”,item) .append(“

Javascript monkey修补一个jquery ui自动完成渲染项 $(“选择器”).autocomplete({…}).data(“autocomplete”)。\u renderItem=函数(ul,项){ 返回$(“”) .data(“item.autocomplete”,item) .append(“,javascript,jquery,jquery-ui,monkeypatching,Javascript,Jquery,Jquery Ui,Monkeypatching,虽然数据作为数据foo属性的一部分被用来将键值对附加到dom元素,但这一位在做什么呢?根据: .data(name,value)是setter:它将值附加到名称键 .data(name)是getter:它返回附加到name键的值 在本例中,该值是一个对象(存储与节点绑定的自动完成实例相关的数据),并且该对象将被就地修改 jQuery库中的常见模式是让函数根据其参数触发不同的操作: $(选择器)。单击(myFunction)将处理程序绑定到节点,$(选择器)。单击()触发单击事件 在jque

虽然数据作为
数据foo
属性的一部分被用来将键值对附加到dom元素,但这一位在做什么呢?

根据:

  • .data(name,value)
    是setter:它将
    附加到
    名称
  • .data(name)
    是getter:它返回附加到
    name
    键的值
在本例中,该值是一个对象(存储与节点绑定的自动完成实例相关的数据),并且该对象将被就地修改

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

  • $(选择器)。单击(myFunction)
    将处理程序绑定到节点,
    $(选择器)。单击()
    触发
    单击
    事件
  • 在jquery ui中,
    $sel.widget('option',name,value)
    通常允许您在创建小部件后更改选项,
    $sel.widget('option',name)
    将允许您获取值
  • 等等

ah当然,因此它返回autocomplete函数,然后将autocomplete的renderItem属性更改为提供的函数…?是:在创建时,automcomplete小部件创建一个配置对象,并使用
.data()将其与节点一起存储
函数。然后您可以使用
自动完成
键访问它。有人知道如何将上述整个返回添加到小部件中创建的span中吗。。。
$("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 );
};