使用jQuery clone()[小提琴里面]克隆时,Twitter typeahead.js中断

时间:2013-06-11 18:25:30

标签: jquery typeahead.js

我一直在将Twitter typeahead.js(版本0.9.2)集成到我的项目中取得了巨大的成功,但是前几天我在使用jQuery的clone()方法插入的页面上遇到了问题。删除表单控件。

这是a fiddle显示我的意思。尝试在现有元素中键入“o”或“t”,然后添加一个带有“+”或“>>”的新元素纽扣。如果您随后单击新创建的预先输入,则可以看到它打开了其上方的建议菜单,否则就不会像预先输入一样。


这是小提琴的一部分,因为SO不会让我发布一个链接:

HTML Dom结构周围的类型

<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>

“+”按钮

的jQuery驱动程序代码
$(document).on('click', '.addBlock', function(){
    var clone = $(this).parents('.inner').clone(true, true);
    clone.appendTo($('div.outer'));
});

1 个答案:

答案 0 :(得分:0)

这是因为您只在页面准备好时调用了预先输入功能。您正在创建的元素在设备准备就绪时不存在,因此未将typeahead分配给它。每次添加新的时候都必须调用typeahead。