我可以在靜態窗體上加載Twitter typeahead。但是,在這種情況下,我想將其應用於動態生成的字段。即使我的複製腳本在新輸入中添加了所需的「.typeahead」類,它似乎也不起作用。事實上,靜態窗體被幾個額外的類所包圍,這些類不是爲動態字段生成的。如何將typeahead.js(Bloodhound)添加到jQuery動態創建的字段?
我覺得我需要做更多的事情才能使動態字段像靜態字段一樣工作,但我不確定。
的JavaScript:
<!-- Dataset: First Names -->
var firstnames = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
limit: 5,
prefetch: {
url: './datasets/firstnames.json',
filter: function(list) {
return $.map(list, function(firstname) { return { name: firstname }; });
}
}
});
firstnames.initialize();
$('.typeahead').typeahead(null, {
name: 'firstnames',
displayKey: 'name',
source: firstnames.ttAdapter()
});
<!-- Dataset: First Names (End) -->
<!-- Dynamic Fields -->
var count=2;
$("#add").click(function(){
var html="<div id='div"+count+"'><input id='firstname"+count+"' type='text' class='typeahead' placeholder='Additional First Name'></input><button type='button' onclick=remover('"+count+"')>Remove</button></div>";
$("#additionalnames").append(html);
count++;
});
function remover(which){
$("#div"+which).remove();
}
<!-- Dynamic Fields End -->
的HTML:
<p>Standard field works fine (type a letter from a to g):</p>
<input type="text" id="firstname" name="firstname" class="typeahead" placeholder="First Name">
<br /><br /><br /><br /><br /><br />
<p>Dynamic field does not:</p>
<div id="additionalnames"></div>
<button id="add" type="button">Add Another</button>
我不認爲的jsfiddle能掌握我的JSON文件,因此現場實施是在這裏: http://drjoeseriani.com/firstnames
一這裏的可下載版本駐留在這裏: http://drjoeseriani.com/firstnames.zip
感謝您的幫助。
這完美地工作,並擴大了我的想法一些更好的做事方式。謝謝。 – 2015-03-19 16:32:22
很高興幫助。 – Dhiraj 2015-03-19 16:33:28