【问题标题】:Trigger event on elements created on the fly at DOM, it's possible?在 DOM 上动态创建的元素上触发事件,有可能吗?
【发布时间】:2014-09-29 21:54:30
【问题描述】:

我正在使用 jQuery Autocomplete 库并将该行为应用于任何具有类 typeahead 的输入。这适用于页面加载时 DOM 上的任何元素。为此,我使用appendclone 或任何其他jQuery/Javascript 函数向DOM 添加一些HTML 来动态创建一些元素,并且它们都具有typeahead 类,但不会触发行为这个新元素。我怎么做这个工作?我也需要触发这个新元素的行为,如何?有什么建议吗?

这是触发autocomplete事件的代码:

$('#products_forms .typeahead').autocomplete({
    serviceUrl: Routing.generate('get_products'),
    paramName: 'filter',
    showNoSuggestionNotice: true,
    noSuggestionNotice: 'Nothing found',
    minChars: 3,
    onSelect: function(suggestion) {
        alert('You selected: ' + suggestion.value + ', ' + suggestion.data);
    }
});

【问题讨论】:

    标签: javascript jquery html dom


    【解决方案1】:

    添加项目后调用typeahead函数,例如:

    var elem = $("<div id='new'></div>");
    $("#someContainer").append(elem);
    $("#new").autocomplete({});
    

    【讨论】:

    • 不起作用,因为我按类调用 typeahead,请参阅我添加到主帖的代码
    • 然后调用typeahead 类。
    • @ReynierPM -- 就像上面一样,添加元素后,请致电$(".typeahead").autocomplete()
    • 但是只有当用户在该输入中输入内容时,自动完成才应该开始,即具有焦点的输入,并且只有当它有超过 3 个字符时,您的建议是否也适用于此?
    • 是的 - 在新元素上,您必须将它们初始化为您希望它们拥有的方法。
    猜你喜欢
    • 2012-07-28
    • 2014-05-01
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    相关资源
    最近更新 更多