我以前做过这百万次,但这一次根本行不通!我有一个函数可以动态添加一个带有链接的表单,该链接将作为一个按钮
content += '<a name="btn-opprettKontakt" id="btn-opprettKontakt" class="btn-opprettNy btn btn-small btn-primary pull-right" data-action="opprettKontakt">Opprett</a>';
return content;
然后我有这个链接的事件处理程序
$('body').on('click','.btn-opprettNy', function() {
alert('button clicked');
});
该表单位于一个 select2 容器内,该容器也是动态添加的,因此除了“body”之外没有其他父元素。但这永远不会触发。
我还有一个用于检查数据操作的所有“按钮”元素的事件处理程序,该处理程序适用于所有其他按钮。如果我将此链接更改为按钮,它也不会触发。
我在这里错过了什么吗?如果我使用 document.ready 上存在的元素,例如 'body' , .on() 应该适用于动态添加的元素,对吗?也许 select2 容器搞砸了?
我在动态添加的元素上有其他事件处理程序,它们工作得很好。
更新
Select2 杀死下拉列表中的所有鼠标事件。到目前为止我发现的唯一解决方案是使用内联 onclick