2013-02-26 124 views
1

我有一个JavaScript/jQuery页面,我使用的是Twitter Bootstrap的键入。在JavaScript中有两个独立的位置,我添加了一些我希望成为typeahead的元素。在不询问主观答案的情况下,对于我来说,将输入作为动态注册输入的好方法是什么?给他们所有不同的ID和注册每次我添加它们?有没有可以用.on()完成的魔法?添加一个侦听器到动态添加的元素

+0

元素是用DOM方法('.createElement'等)还是用String和'.innerHTML' /'.html()'构造的? – 2013-02-26 16:49:40

+0

字符串.append – tubaguy50035 2013-02-26 16:50:35

回答

2

您可以使用jQuery代表团执行此操作。例如:

$("#element-that-will-contain-typeaheads").on("DOMNodeInserted", function() { 
    $(this).find(".typeahead").typeahead(); 
}); 
+0

但这不起作用,因为它不是侦听器。 '。typeahead'是一个寄存器,据我所知,它不能在'.on()'中。 – tubaguy50035 2013-02-26 16:51:16

+0

有一个插入DOM节点的事件,让我编辑我的答案 – KaeruCT 2013-02-26 16:52:36

+0

我是否应该注意我可能会“重新注册”.typeahead? – tubaguy50035 2013-02-26 16:57:00

0

最简单的方法,将用于typeahead, datepicker etc

第一份工作,你需要了解你是如何增加您想申请bootstrap typeahead

添加元素尝试输入元素实现类似如下:

//add this in your add button click handler 
$tinput = $('<input type="text" name="bootstrap" class="typeahead"/>'); 

//apply bootstrap typeahead 
$tinput.typeahead(); 

这样它会工作,我还以为这里分享会帮助别人:)