【发布时间】:2011-04-10 16:21:05
【问题描述】:
我正在重写 jQuery Autocomplete 以显示简单链接 (<a href=...>") 和一些额外的格式,这些格式稍后需要变得更复杂。
点击链接时没有任何反应。有没有办法删除任何事件处理程序或其他代码正在拦截点击,以便它们按预期运行?
有几个相关的问题(例如#4536055)有很好的答案,但它们处理的是默认的自动完成行为。 source 的答案似乎是一个 hack——链接应该像链接一样起作用。
我的代码:
$.widget( "custom.complete_custom", $.ui.autocomplete, {
_renderMenu: function( ul, items ) {
// Trigger a "See all" link if there are two many results
var self = this;
var too_long = false;
if (items.length > 10){
original_length = items.length;
too_long = true;
items = items.slice(0,10);
}
// Display each result as a link
$.each( items, function( index, item ) {
ul.append( "<li class='ui-autocomplete-category'><a href='/building/" + item.buildingcode + "'>" + item.buildingname + "</a></li>" );
});
// Add the "See all" link if necessary
if(too_long) {
ul.append( "<li class='ui-autocomplete-category see-all'><a href='/search/" + 'term' + "'><strong>See all " + original_length + " results</strong></a></li>" )
}
}
});
// The autocomplete activator
$( "#search" ).complete_custom({
source: "/search/json",
minLength: 2
});
【问题讨论】:
标签: jquery jquery-ui jquery-ui-autocomplete