gpt4 book ai didi

javascript - jQuery 自动完成数据未定义错误

转载 作者:行者123 更新时间:2023-11-29 22:10:28 24 4
gpt4 key购买 nike

我正在使用 jquery v 2.0.0 和 jquery ui 1.10.3

以下是我的 jquery ui 自动完成代码:

$nameField.combobox({
source: people,
buttonSelector: '.toggleList',
focus: function () {
return false;
},
select: function (event, ui) {
$nameField.val(ui.item.name).data({
id: ui.item.id,
name: ui.item.name,
birthdate: ui.item.birthdate
});
return false;
}
}).data('ui-autocomplete')._renderItem = function (ul, item) {
if (!_.include(self.idArr, item.id)) {
return $('<li></li>').data('ui-autocomplete-item', item).append('<a>' + item.name + '</a>').appendTo(ul);
}
};

这在旧版本的 jquery 中工作得很好。但是在升级之后,当我点击 .toggleList 按钮时,它第一次打开,并且有另一个按钮可以将所选名称添加到 div。之后,当我单击“.toggleList”组合选择器时,自动完成功能没有打开。它给了我以下错误:

Uncaught TypeError: Cannot call method 'data' of undefined jquery.ui.autocomplete.js?1376892069:527

有人遇到过这样的问题吗?我尝试了其他 stackoverflow 线程中提到的几个修复程序,但没有一个对我有用。

希望有人能帮我修复这个bug

谢谢

最佳答案

我找到了解决方案!

有人认为“ui-autocomplete”是错误的,所以他们使用“autocomplete”或“uiAutocomplete”,但那是错误的。实际上,“ui-autocomplete”是执行此操作的正确方法。

我和你有同样的问题,我和 friend 一起发现这段代码的问题。相反:

.data('ui-autocomplete')._renderItem = function (ul, item) {
if (!_.include(self.idArr, item.id)) {
return $('<li></li>').data('ui-autocomplete-item', item).append('<a>' + item.name + '</a>').appendTo(ul);
}
};

使用:

._renderItem = function (ul, item) {
if (!_.include(self.idArr, item.id)) {
return $('<li></li>').data('ui-autocomplete-item', item).append('<a>' + item.name + '</a>').appendTo(ul);
}
};

我认为组合框和自动完成返回一个数据('ui-autocomplete'),所以如果你输入 .data('ui-autocomplete')你正在做类似的事情:

.data('ui-autocomplete').data('ui-autocomplete')

怎么了....好吧,实际上我不知道为什么这行不通,也不知道为什么没有它行得通,但是相信我,删除 .data('ui-autocomplete') 并开心!

关于javascript - jQuery 自动完成数据未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18349929/

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