Bootstrap Typeahead没有处理动态添加的元素?

时间:2013-08-14 17:48:11

标签: jquery json twitter-bootstrap bootstrap-typeahead

我正在通过onclick函数添加一个输入框 - 因此当页面呈现时以及document.ready()触发时输入框不存在。

我想通过在调用javascript函数的输入字段中添加onclick函数来解决这个问题。

http://goo.gl/id6esq将返回json:

  

[ “1175-1234567890”, “1175-1234567891”, “1175-1234567892”, “1175-1234567893”, “1175-1234567894”, “1175-1234567895”]

(我无法使jsfiddle工作 - 不会进行预先处理)

<a id="clickbtn" class="btn-btn-inverse">Click me</a>

<div id="insert"></div>

<script type="text/javascript">
    $(function() {
        $('#clickbtn').on('click', function() {
            $('#insert').html("<input type='text' onclick='javascript:invoice_no_setup_typeahead($(this))' name='retrun-order-invoice_no' class='return-order-invoice_no' data-provide='typeahead'>");
        });
    });
    function invoice_no_setup_typeahead(self) {
        console.log('focus acheived');
        $(self).typeahead({
            source: function(query, process) {
                console.log(query);
                return $.get(
                        'http://goo.gl/id6esq', {
                    query: query
                },
                function(data) {
                    console.log(data);
                    return process(data);
                }, 'JSON');
            }
        });

    }
</script>

1 个答案:

答案 0 :(得分:2)

尝试

    $('#clickbtn').on('click', function() {
        var el = $("<input type='text' name='retrun-order-invoice_no' class='return-order-invoice_no'>").appendTo($('#insert').empty());
        invoice_no_setup_typeahead(el)
    });