Select2 在将数据附加到现有选择后初始化选择
Posted
技术标签:
【中文标题】Select2 在将数据附加到现有选择后初始化选择【英文标题】:Select2 Initialize select after appending data to existing select 【发布时间】:2015-02-18 02:55:04 【问题描述】:在我的 select2 选择中,我需要在文档准备好后附加 li,在附加后,我如何重新初始化 select2。如果我关闭并再次打开选择,则附加的数据是可选择的,但不是在我追加时立即选择。 我怎样才能重新初始化它。
【问题讨论】:
【参考方案1】:你必须销毁这些元素上的 select2 然后重新初始化它。
$("select").select2("destroy").select2();
【讨论】:
谢谢,它起到了神奇的作用,我添加了 $("select").select2("open");重新打开它。 我收到一个错误:在未使用 Select2 的元素上调用了 select2('destroy') 方法。 @Jonathan 这意味着您选择的元素尚未被 select2 使用.select2()
初始化。
我有 5 个初始化好的下拉菜单!甚至尝试以 1 为目标,但仍然出现相同的错误
那么没有代码就很难看出原因。最好使用代码示例为此创建一个新问题,以便我们查看。【参考方案2】:
感谢@Mivaweb 上面的回答^
所以如果我使用:
$("select").select2("destroy").select2();
然后我得到以下问题,因为 cmets 中的一些人在上面的回答中:
The select2('destroy') method was called on an element that is not using Select2
但这并不意味着它不起作用,它可以工作,但需要稍微更新方法。
适合我的解决方案:
STEP1:销毁现有的 select2 实例
STEP2:更新选项或选择
第 3 步:现在初始化新的 select2 实例
例如:
$(".select2me-filter").select2("destroy");
... Here do option updates you need
$(".select2me-filter").select2();
【讨论】:
以上是关于Select2 在将数据附加到现有选择后初始化选择的主要内容,如果未能解决你的问题,请参考以下文章