【问题标题】:Select2 Initialize select after appending data to existing selectSelect2 在将数据附加到现有选择后初始化选择
【发布时间】:2015-02-18 02:55:04
【问题描述】:

在我的 select2 选择中,我需要在文档准备好后附加 li,在附加后,我如何重新初始化 select2。如果我关闭并再次打开选择,则附加的数据是可选择的,但不是在我追加时立即选择。 我怎样才能重新初始化它。

【问题讨论】:

    标签: jquery jquery-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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多