我想實現jquery-ui自動完成,但有一些自定義功能。我正在嘗試搜索標籤和描述,然後選擇一次即可訪問該網址。jquery ui自動完成搜索詞的隨機順序和鏈接到url
我已經實現了以任何順序搜索標籤和描述的單詞,但正因爲如此,我似乎無法引用_renderItem或select函數中的item.desc或item.url。
我相信有一些簡單的我在這裏失蹤,所以任何建議都會很棒。 在此先感謝。
$(function() {
var adminPages = [
{
"label": "Manage pages",
"desc": "here is some text",
"url": "/managepages.aspx"
},
{
"label": "Manage Navigation",
"desc": "here is some text",
"url": "/managenavigation.aspx"
}
];
//var result = adminPages.map(a => a.label);
var result = $.map(adminPages, function (n, i) {
return [[n.label, n.desc]];
});
$(".admin-search").autocomplete({
source: function (requestObj, responseFunc) {
var matchArry = result.slice(); //-- Copy the array
var srchTerms = $.trim(requestObj.term).split(/\s+/);
//--- For each search term, remove non-matches.
$.each(srchTerms, function (J, term) {
var regX = new RegExp(term, "i");
matchArry = $.map(matchArry, function (item) {
return regX.test(item) ? item : null;
});
});
//--- Return the match results.
responseFunc(matchArry);
},
select: function (event, ui) {
//window.location = ui.item.url;
}
})
.data("ui-autocomplete")._renderItem = function (ul, item) {
return $("<li>")
.append("<a>" + item.label +
"<br><span style='font-size: 80%;'>Desc: " + item.desc + "</span>" +
"<br><span style='font-size: 80%;'>Url: " + item.url + "</span></a>")
.appendTo(ul);
};
});
它看起來像'matchArry'不包含'url'元素。會認爲你會想要返回'adminPages [J]'。 – Twisty
嗨Twisty,感謝您的評論,我不確定這將實施,但。如果您有時間查看並讓我知道,我已添加了代碼筆鏈接。謝謝 –