0

我有一个自动完成功能,列表中的最后一项是“添加”按钮。我希望它有一个自定义的“选定”操作,并且我想在 .autocomplete 之外定义它,因为它是一种特殊情况。

是否有某种方法可以更改自动完成中列表项的选定操作?

$('.my-autocomplete').autocomplete({
   select: function(event, ui) {
      // do stuff
   }
   ... // more settings
});

自动完成的定义如上,但我希望所有具有“添加”类的列表项做一些不同的事情。我不想检查上面代码中的类,因为它是一种特殊情况,并且仅适用于这一页(而上面的代码适用于整个站点上的所有自动完成)。

4

1 回答 1

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
});
于 2012-08-01T22:17:14.030 回答