jQuery Autocompletes:为特定项设置select操作

时间:2012-07-18 21:22:10

标签: jquery jquery-autocomplete

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

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

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

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

1 个答案:

答案 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
});