gpt4 book ai didi

使用键盘时 jQuery 自动完成应该跳过禁用的元素

转载 作者:行者123 更新时间:2023-12-03 22:40:12 26 4
gpt4 key购买 nike

如果你看到这个Fiddle demo ,不是我做的,那么我怎样才能避免键盘向下并选择禁用的元素?鼠标工作正常(无法选择它),但我可以用键盘按下并选择它,导致搜索为空:-/

Fiddle 演示来自这篇文章,How to disable element in jQuery autocomplete list

jQuery 代码:

$(function () {
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"];

$("#tags").autocomplete({
source: availableTags,
response: function (event, ui) {
if (ui.content.length > 3) {
while (ui.content.length > 3) {
ui.content.pop();
}
ui.content.push({
'label': 'Please narrow down your search',
'value': ''
});
}
}
}).data("ui-autocomplete")._renderItem = function (ul, item) {
return $("<li " + (item.value == '' ? 'class="ui-state-disabled"' : '') + ">")
.append("<a>" + item.label + "</a>")
.appendTo(ul);
};
});

最佳答案

自动完成“知道”根据 <a> 的存在来突出显示项目每个里面li 。您可以通过删除 anchor 来禁用事件的键盘选择:

.data("ui-autocomplete")._renderItem = function (ul, item) {
var $el = $("<li>");
if (item.value === '') {
$el.addClass("ui-state-disabled")
.text(item.label);

} else {
$el.append("<a>" + item.label + "</a>");
}

return $el.appendTo(ul);
};

示例: http://jsfiddle.net/m6zvf/12/

关于使用键盘时 jQuery 自动完成应该跳过禁用的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18465510/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com