旧版本的jQueryUI自动完成控件中的类别
Categories in old version of jQueryUI AutoComplete control
我被困在jQuery 1.7和jQueryUI 1.8.6上,目前无法升级(我们有相当多的弃用和删除的代码,目前无法升级)。
我可以使用jQueryUI的自动完成控件,但我无法弄清楚如何使用类别-使用这里找到的示例。
$.widget( "custom.catcomplete", $.ui.autocomplete, {
_create: function() {
this._super();
this.widget().menu( "option", "items", "> :not(.ui-autocomplete-category)" );
},
_renderMenu: function( ul, items ) {
var that = this,
currentCategory = "";
$.each( items, function( index, item ) {
var li;
if ( item.category != currentCategory ) {
ul.append( "<li class='ui-autocomplete-category'>" + item.category + "</li>" );
currentCategory = item.category;
}
li = that._renderItemData( ul, item );
if ( item.category ) {
li.attr( "aria-label", item.category + " : " + item.label );
}
});
}
});
我得到一个错误:this._super is not a function
,如果我删除那行,那么下面的行在调用widget()
时失败,使用Cannot read property 'element' of undefined
。
我知道jQuery插件的语法在不同版本之间发生了变化,但我似乎无法修改他们的示例,以便它可以与旧版本一起工作。这个问题暗示了1.7版本中略有不同的语法,但我只是在摆弄它时不断得到不同的错误。
你知道我需要改变什么才能使它工作吗?
_super
方法是在较新版本的jQuery UI中创建的,以前的版本中不存在。作为一种变通方法,你可以调用$.ui.autocomplete.prototype._create.call(this);
,它的作用基本上与_super
相同。
一旦_renderItemData
也没有退出,您必须实现它,通过将其更改为_renderItem
,然后调用.data( "ui-autocomplete-item", item );
$.widget("custom.catcomplete", $.ui.autocomplete, {
_create: function () {
$.ui.autocomplete.prototype._create.call(this);
this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)");
},
_renderMenu: function (ul, items) {
var that = this,
currentCategory = "";
$.each(items, function (index, item) {
var li;
if (item.category != currentCategory) {
ul.append("<li class='ui-autocomplete-category'>" + item.category + "</li>");
currentCategory = item.category;
}
li = that._renderItem(ul, item).data('ui-autocomplete-item', item);
if (item.category) {
li.attr("aria-label", item.category + " : " + item.label);
}
});
}
});
小提琴工作:http://jsfiddle.net/qjw165sz/1/
相关文章:
- 音频控件在mouseover上显示,在mouseout上淡出
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- Windows形成web浏览器控件和Javascript更改的DOM
- 如何将javascript事件从web浏览器wpf控件发送到wpf的c#代码
- 如何更改文本框控件的不透明度值
- 所有控件的组合框
- 创建一个方法,通过一个窗口进行迭代并获取Titanium中的所有控件
- 在angularjs中创建自定义控件的推荐方法
- 自定义控件中的双向绑定在SAPUI5中不起作用
- 如何在ASP中为用户控件添加Javascript对象网
- Dynamics 2016内部部署Crm客户端脚本.选项集控件类型缺少方法
- 从服务器获取数据并在选择控件中使用ng选项无法显示选项
- 在HTML5画布上添加按钮和控件
- 隐藏HTML5视频控件
- 如何在必应地图 AJAX 控件版本 7.0 中绑定切片图层
- 在 Silverlight 或 Javascript 中确定 ActiveX 控件的版本
- 旧版本的jQueryUI自动完成控件中的类别
- 这个Silverlight时间导航控件有JavaScript/HTML版本吗?
- bing maps -兼容JavaScript的所有版本的Bingmap控件