我希望自动完成显示仅在实际显示5个结果时才显示Displaying top 5 results
的页脚。只有当有5个结果时显示YUI自动完成页脚
到目前为止,我已经设置了它,使得它不会显示,如果起初有少于5个结果,但是一旦加载了5个结果,页脚总是显示,无论实际显示多少结果。
请原谅愚蠢的flip
噱头。
oAC.formatResult = function(oResultData, sQuery, sResultMatch) {
var sKey = sResultMatch
// Extract the part of the match that the user did not type
var sKeyRemainder = sKey.substr(sQuery.length);
oAC.setFooter("");
var aMarkup = ["<div class='myCustomResult'>",
"<span style='font-weight:bold'>",
sQuery,
"</span>",
sKeyRemainder,
"<br>",
"</div>"];
if (oResultData[2] >= 4) {
flip = true;
}
if (flip) {
oAC.setFooter("<div style=\"margin-left:5px;\"><span style=\"font-weight:bold;\">See more results for " + sQuery + "</span><br>Showing top 5 results</div>");
}
return (aMarkup.join(""));
};
是的,这是我尝试过的许多类似路线的一个变体。如果formatResult函数在每次显示自动完成时都被调用,则这将起作用。但是,只有在检索结果时才调用它。所以有了这个逻辑,如果你输入一个字母并得到5个以上的结果,页脚就会显示出来。然后当你输入更多的字母时,结果的数量会减少。一旦你下降到5以下,页脚应该消失。但是,由于结果已经被检索到,因此该函数不会被调用,并且页脚不受影响。 – Jimmy 2011-02-24 20:08:56