动态添加元素的事件处理程序不能与select2插件一起使用

时间:2013-09-26 07:30:58

标签: javascript jquery jquery-select2

我之前已经完成了这么多次,但这次它根本行不通! 我有一个动态添加一个带有链接的表单的函数,该链接将充当按钮

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'之外没有父元素。但这永远不会激发。

我还有一个事件处理程序,用于检查数据操作的所有“按钮”元素,该操作适用于所有其他按钮。如果我将此链接更改为按钮,则它永远不会触发。

我在这里遗漏了什么吗? .on()应该适用于动态添加元素,如果我使用document.ready上存在的元素,比如'body',对吗? 也许select2容器搞砸了?

我有动态添加元素的其他事件处理程序,可以正常工作。

更新

Select2会杀死下拉列表中的所有鼠标事件。到目前为止我找到的唯一解决方案是使用内联onclick

1 个答案:

答案 0 :(得分:1)

Select2会杀死下拉列表中的所有鼠标事件。 到目前为止我找到的唯一解决方案是使用内联onclick

Here也是一种可以帮助其他人解决类似问题的解决方案。