我有一个带有自动完成功能的文本框。当输入框的文本包含某些字符时,我还在自动完成下拉列表中添加了一个自定义元素。我正在添加这个自定义元素来自定义插件的 _renderItem 函数:
$tb.autocomplete({
/* OPTIONS HERE */
}).data("autocomplete")._renderItem = function (ul, item) {
if ($tb.val().indexOf('someText') > -1){
ul.append('<li class="dropdown-element"><a href="#" class="my-option">My custom option</a></li>');
}
return false;
}
我希望每当用户键入包含“someText”的内容并按 Enter 键(之前没有在下拉列表中选择任何内容)时,都会为我的自定义元素引发自动完成的“选择”事件。
我尝试在文本框上为“keyup”事件添加一个处理程序,但是每次按 Enter 时都会调用该处理程序(即使在下拉列表中选择了一些元素),并且我无法从“选择”中取消事件的传播' 自动完成的事件处理程序。(我尝试了 e.stopPropagation 和 e.originalEvent.stopPropagation 但它仍然由“keyup”处理程序处理)。
关于如何实现这一目标的任何想法?谢谢