jQuery 自动完成 select 功能未触发

jQuery autocomplete select function not firing

我正在围绕 jQuery 自动完成编写一个可重复使用的包装器,但出于某种原因我无法使 select 回调正常工作。

鉴于下面的代码,永远不会调用 select() 函数。我搞砸了什么?关于如何使用 jQuery 自动完成小部件指定 select 回调是否有一些隐藏的限制?

注意:这只是写了一半。只是想让 select 工作。

// Note: 'input' is a jQuery object.
name.space.ThingSuggest = function(input) {
  this.input = input;

  // Set up an autocomplete widget on the given input form.
  this.input.autocomplete({
    source: name.space.ThingSuggest.SOURCE_URL,
    delay: 500,
    select: this.select.bind(this)
  });

  this.input.autocomplete('instance')._renderItem = name.space.ThingSuggest.renderItem;
};

name.space.ThingSuggest.SOURCE_URL = // some URL

name.space.ThingSuggest.prototype.select = function(event, ui) {
  this.input.val(ui.item.label);

  return false;
};

name.space.ThingSuggest.renderItem = function(ul, item) {
  return $('<li>', { value: item.value })
      .append(item.label + ' <span>@' + item.username + '</span>')
      .appendTo(ul);
};

待明确,自动完成和 _renderItem 正在按预期工作。只有 suggest 回调没有触发。

我盯着这个看的时间太长了...所以据我所知,这是一个愚蠢的不匹配支架之类的东西。

提前致谢!

我混淆了 selectfocus 事件。因为我真的很笨

select 实际上在上面的代码示例中有效,但我没有触发它,因为我只是在列表中移动焦点,实际上 clicking/selecting 不是一个条目。

我真正想做的——在列表项焦点更改时使用回调——需要使用 focus 回调。

我不知道去哪里 post 这个, 它可能与 post 无关,但我想提请您注意这一点,我使用了错误版本的 jquery 自动完成,而不是 jquery ui一个,但是一个来自与 jquery ui 无关的 npm 包,所以如果你没有触发 "select" 事件,请尝试从 [=16] 下载版本=] 网站 ui.

https://jqueryui.com/download