Je retourne plusieurs données pour chaque résultat. Dans chaque résultat j'ai différents liens que je passe que je voudrais sélectionner. En ce moment, peu importe où quelqu'un clique sur un résultat, il met simplement le titre dans la zone de texte plutôt que de traiter le lien.jquery ui autocomplete - manipuler les résultats
$(function() {
function log(message) {
$("<div/>").text(message).prependTo("#log");
$("#log").attr("scrollTop", 0);
}
$.ajax({
url: "links2.xml",
dataType: "xml",
success: function(xmlResponse) {
var data = $("ROW", xmlResponse).map(function() {
return {
value: $("SC_DF_FIELD_1", this).text(),
url: $("SC_DF_FIELD_2", this).text(),
support_url: $("SC_DF_FIELD_3", this).text(),
description: $("SC_DF_FIELD_4", this).text(),
contact: $("SC_DF_PERSON_LINK", this).text()
};
}).get();
$("#birds").autocomplete({
source: data,
minLength: 0
}).data("autocomplete")._renderItem = function(ul, item) {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a>" + item.value + "<br>" + item.url + "<br>" + item.description + "<br>" + "Support URL: " + item.support_url + "<br>" + "Contact: " + "<a href=http://someurl.whatever?p_id=" + item.contact + ">Test</a>" + "</a>")
.appendTo(ul);
};
}
})
});
Je voudrais qu'ils soient en mesure de cliquer item.url et il y va, ou item.contact et il y va.
EDIT:
Ceci est le code formatItem j'essayer. Il ne sert à rien d'avoir un effet sur ce qui est retourné.
function formatItem(item, foo, bar, term){
var temp = item.title + '<br /> ' + item.description + '<br />' + '<a href=' + item.url + '>test</a>';
return temp;
}
$.ajax({
url: "links2.xml",
dataType: "xml",
success: function(xmlResponse) {
var data = $("ROW", xmlResponse).map(function() {
return {
value: $("SC_DF_FIELD_1", this).text(),
url: $("SC_DF_FIELD_2", this).text(),
support_url: $("SC_DF_FIELD_3", this).text(),
description: $("SC_DF_FIELD_4", this).text(),
contact: $("SC_DF_PERSON_LINK", this).text()
};
}).get();
$("#birds").autocomplete({
source: data,
minLength: 0,
formatItem: formatItem
})
}
})
});
La façon dont j'essaie cela ne semble pas avoir un effet sur la sortie. Maintenant, je ne vois que la valeur. J'ai ajouté le code que j'essaie à la question – specked
Je ne pense pas que formatItem fonctionne pour ce nouveau plugin autocomplete. D'autres idées? J'utilise le plugin jQuery-ui – specked