javascript - 在 DOM 上动态创建的元素上触发事件,这可能吗?

标签 javascript jquery html dom

我正在使用 jQuery 自动完成库,并将该行为应用于带有类 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);
    }
});

最佳答案

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

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

关于javascript - 在 DOM 上动态创建的元素上触发事件,这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25169267/

相关文章:

javascript - 找不到元素的子元素

jquery - 从动态列表中获取值并将它们作为字符串返回

java - 在 HTML 页面的什么地方添加 UTF-8 扩展名?

javascript - Prisma 使用相同模型的 1-1 和 1-n 关系

javascript - 图片未定义onload函数,需要获取高度和宽度

javascript - JQUERY- 在 li 上显示 div 单击否则隐藏

javascript - 使用 JavaScript 访问 div 的子节点

jquery 将文本标签转为 html 标签

jquery - 如何自定义完美滚动条的宽度

HTML5 验证错误 : Element source not allowed as a child element of audio in this context