我一直在尝试对所选下拉搜索结果的行为进行细微更改,但似乎没有任何直接的方法来实现它们。我有一个以三个字母的ISO国家/地区代码开头的国家/地区列表。我希望能够照常搜索,但如果国家/地区代码完全匹配,请突出显示该国家/地区。问题是匹配的国家/地区代码并不总是列表中的第一项。更一般的请求将能够访问结果列表,并将选择设置为除第一个之外的某个项目。
通过检查,它看起来像搜索结果只存在作为一个jquery对象,并且其中列表项包括一个带有原始选项列表索引的data-option-array-index,所以我可以找到我的项目知道我希望在DOM对象中突出显示并将类设置为“突出显示”。但我也可能需要将其滚动到视图中,并且直接搞乱底层DOM并不理想,因此访问选择的函数会非常好。
答案 0 :(得分:0)
所以,我通过访问DOM找到了它。我在初始数组中有我想要突出显示的索引,并且以下代码将执行此操作,假设它位于结果列表中(使用lodash _.find):
var highlightChosenResult = function(index) {
var resultList = $('li.active-result');
var result = _.find(resultList, function(el) {
return +$(el).attr('data-option-array-index') === index;
});
if (result) {
this.chosenApi.result_do_highlight($(result));
}
}