twitter bootstrap typeahead无法添加到动态创建的元素

时间:2012-06-14 16:23:24

标签: javascript jquery function twitter-bootstrap javascript-events

有没有办法将twitter bootstrap的typeahead函数转换为$(“body”)。on()函数?如果页面加载中存在该元素,则以下代码可以正常工作。

$("#job_title").typeahead({
    source: searchFunction,        
    onselect: function(obj) {            
    }
});

但如果我动态添加id =“job_title”的文本输入,则上述功能不起作用。有解决方法吗?

3 个答案:

答案 0 :(得分:3)

此解决方案不需要额外的javascript。来自https://stackoverflow.com/a/15094730

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

答案 1 :(得分:1)

我下载jquery.livequery.js以获得我想要的行为:

$("#job_title").livequery("create", function() {
    $(this).typeahead({
        source: searchFunction,        
        onselect: function(obj) {            
        }
    });
});

答案 2 :(得分:0)

var fx = {
    "init":function() {
        $("#id_of_an_element").typeahead({
            minLength:2,
            delay:1 ...
        })
    },
    "method2":function(){
        some content;
    }
}

每次将包含typeahead的元素加载到DOM中(例如,通过AJAX成功,调用fx.init();