[英]Jquery catching click event on jquery ui autocomplete
我最近一直在努力解决这个问题,但我不能
问题是我有一个input
字段,其中包含类型text
,我需要在选择自动完成的值时获取当前输入数据。 请注意,我正在使用 jQuery UI 自动完成功能。
我可以捕获keyup
事件,但是当用户单击自动完成值时。 jQuery 不会触发change
事件处理程序,我尝试使用那里的每个事件处理程序,但无济于事。
我认为它无法捕获基于 DOM 的元素操作? 我不确定。 这是一把小提琴
select
选项应该可以解决问题。
选项/事件/方法 API 文档: http : //api.jqueryui.com/autocomplete/
希望这符合需求:)
示例代码
$("#to").autocomplete({
source: function (request, response) {
var friendsArray = [];
friendsArray = [{
"id": 1,
"name": "hulk",
"value": "hulk"
}, {
"id": 2,
"name": "ironman",
"value": "ironman"
}, {
"id": 3,
"name": "Foobar",
"value": "Foobar"
}];
response(friendsArray);
return;
},
select: function (e, ui) {
alert("selected!");
},
change: function (e, ui) {
alert("changed!");
}
});
Chrome 在保留 ui 以进行单击更改时遇到问题,因此我在自动完成 open: 事件中为各个弹出列表锚标记添加了一个 mousedown 处理程序。 这也是为列表设置样式的好地方:
function onItemTypeAheadListOpen(e, ui) {
// Stub for list click issues
$('.ui-autocomplete a').mousedown(function () {
lastItemClicked = this.innerText;
});
// Override default list style
$('.ui-autocomplete').css('z-index', '600');
$('.ui-autocomplete').css('width', '480px');
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.