我一直在将Twitter typeahead.js(版本0.9.2)集成到我的项目中取得了巨大的成功,但是前几天我在使用jQuery的clone()方法插入的页面上遇到了问题。删除表单控件。
这是a fiddle显示我的意思。尝试在现有元素中键入“o”或“t”,然后添加一个带有“+”或“>>”的新元素纽扣。如果您随后单击新创建的预先输入,则可以看到它打开了其上方的建议菜单,否则就不会像预先输入一样。
这是小提琴的一部分,因为SO不会让我发布一个链接:
<div class="outer">
<div class="inner">
<form>
<input name="example" /> <!-- initialized as typeahead -->
<button type="button" class="addBlock">+</button>
<!-- other buttons omitted -->
</form>
</div>
</div>
$(document).on('click', '.addBlock', function(){
var clone = $(this).parents('.inner').clone(true, true);
clone.appendTo($('div.outer'));
});
答案 0 :(得分:0)
这是因为您只在页面准备好时调用了预先输入功能。您正在创建的元素在设备准备就绪时不存在,因此未将typeahead分配给它。每次添加新的时候都必须调用typeahead。