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

标签 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") 我虽然数据被用来将键值对附加到 dom 元素作为 data-foo 属性的一部分。但这里似乎并非如此?

最佳答案

根据 documentation :

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

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

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

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

关于javascript - 猴子修补一个 jquery ui 自动完成渲染项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13288135/

相关文章:

javascript - jQuery ui 选项卡 : sliding effect when switiching between tabs

javascript - ReactJS 与传单 : tiles not correctly displayed until page refresh

jquery - 如何在网络浏览器上绘制箭头

javascript - jQuery:如何更改标签名称?

javascript - 如何使用 jquery 遍历所有 json 项?

jquery - 我可以将 jQuery UI 对话框置于 div 中心吗?

javascript - 将简单代码从 JS 转换为 jQuery

javascript - 如何使视频控件显示在 Firefox 中?

javascript - Reducer 没有将对象添加到数组中,而是添加了 null

javascript - 使用表单字段值作为对 JavaScript 变量的引用