我有一个自动完成功能,其中列表中的最后一项是“添加”按钮。我希望这有一个自定义的“选定”操作,我想在.autocomplete之外定义它,因为它是一个特例。
是否有某种方法可以更改自动填充中列表项的选定操作?
$('.my-autocomplete').autocomplete({
select: function(event, ui) {
// do stuff
}
... // more settings
});
自动完成定义如上,但我希望所有具有“添加”类的列表项执行不同的操作。我不想在上面的代码中检查类,因为它是一个特殊情况,仅适用于这一页(而上述代码适用于整个站点上的所有自动完成)。
答案 0 :(得分:0)
从查看自动填充的来源,似乎没有现成的机制。
我理解您不希望在特殊情况下丢弃常见代码,但是如何处理这些特殊情况的通用机制呢? (也就是说,做你希望自动完成你自己开箱即用的东西)
我不确定你是怎么做到这一点的,因为你说的是“具有'add'类的列表项”,暗示你正在处理html元素而不是数据源中的对象,所以我对不起,如果这个例子不适合你的情况。
我的意思是:
function special_handler(event, data) {
// do special stuff
}
var source = [{value: 'Normal item'}, {value: 'Special item', customselect: special_handler}];
$('.my-autocomplete').autocomplete({
select: function(event, data) {
if(data.item.customselect) {
data.item.customselect(event, data);
} else {
// do normal stuff
}
},
source: source
... // more settings
});