我正在重写jQuery自动完成功能,以显示简单的链接(
当单击链接时,什么都不会发生。是否有办法删除拦截点击的任何事件处理程序或其他代码,使其按预期行事?
有几个相关的问题(例如#4536055),有很好的答案,但它们涉及默认的自动完成行为。源答案似乎是一个hack - 链接应该像链接一样工作。
我的代码:
<a href=...>
)和一些额外的格式化,这些格式化需要在以后变得更加复杂。当单击链接时,什么都不会发生。是否有办法删除拦截点击的任何事件处理程序或其他代码,使其按预期行事?
有几个相关的问题(例如#4536055),有很好的答案,但它们涉及默认的自动完成行为。源答案似乎是一个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
});