我使用jQuery自动完成功能来生成各种页面的链接。单击这些链接应在fancybox中打开。由于链接未在页面加载$(".iframeFancybox1").fancybox();
上创建,因此无效(适用于使用此类的所有其他元素)。问题是:如何挂钩自动完成的就绪状态再次启动.fancybox()并在fancybox中打开这些链接?
JS:
var items = [];
$(".forms .menu-item a").each(function(n){
items.push({
label: $(this).html(),
url: $(this).attr('href')
});
});
$(document).ready(function() {
var availableTags = items;
jQuery( ".custom-search .text" ).autocomplete({
source: availableTags,
appendTo: ".ac-result"
}).data("ui-autocomplete")._renderItem = function(ul, item) {
var listItem = $("<li></li>")
.data("ui-autocomplete-item", item)
.append("<a class='iframeFancybox1 cat1' href='"+ item.url +"'>"+ item.label +"</a>")
.appendTo(ul);
return listItem;
};
});
我尝试在输入字段上使用.keyup()来初始化fancybox而没有运气,问题仍然存在。
答案 0 :(得分:0)
尝试将其绑定到文档末尾的ul:
$('ul.ulSelector').on('click', 'a', function() {
$(this).fancybox();
});
如果这不起作用,那么您可以在_renderItem
函数中尝试此操作:
var listItem = $("<li></li>")
.data("ui-autocomplete-item", item)
.appendTo(ul);
var link = $("<a class='iframeFancybox1 cat1' href='"+ item.url +"'>"+ item.label +"</a>");
listItem.append(link);
link.fancybox();