选择从DOM中删除后,Select2下拉菜单仍然存在

时间:2016-04-19 17:13:31

标签: javascript jquery jquery-select2

我正在使用select2版本4.0.2(rc1) 我所看到的是,当使用带有<ul id="MenuID"> <li> <a href="index.html"> Home </li> <li> <a href="index.html"> Forum</li> <li> <a href="index.html"> Website</li> </ul>的select2时,打开下拉菜单然后从DOM中动态删除选择,菜单就会一直存在。

您可以通过专注于控制来查看the select2 examples中发生的事情,以便您查看时区选项,然后在控制台中输入isMultple=true。选项列表很棒。

编辑:以上是我正在尝试解决的问题的一个示例。在我的情况下发生的事情是dom被操作以通过框架移除选择框,使得在它发生之前我无法挂钩。我想要做的是找到一种方法来响应被删除的元素,希望我可以手动删除选项列表(如果存在)。

我正试图想出一个干净的方法来处理这个问题。我试着像这样陷入破坏:

$('.s2-example').remove()

但是似乎没有被解雇。

我考虑过使用mutation observer,但这对我来说有些不好意思。有谁能建议一个更好的方法来处理这个?任何意见,将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

绝对buried in the documentation (under adapters),但你应该通过将“destroy”传递给jQuery对象的destroy方法

来调用select上的.select2()方法
$(".js-example-basic-multiple").select2('destroy');

这会破坏实例。然后,您可以安全地拨打.remove()

$(".js-example-basic-multiple").select2('destroy').remove();