0

我正在使用 jQuery 插件Select2.js v3.2,它似乎select2-container在元素之前而不是在元素之后插入。这导致一些假定先前兄弟的代码中断。是否有一个“追加”选项来初始化容器,所以我知道它总是在元素之后追加?

4

1 回答 1

1

似乎没有办法指定是select2-container在元素之前还是之后插入元素。在我看来,你有几个选择:

  • 修改 Select2.js 源以在元素之后插入容器。第 595 行更改.before(this.container);.after(this.container);.
  • 从您的问题中不清楚哪个代码“假定以前的兄弟姐妹”。如果是您的代码,那么您应该更改。如果不是您的代码,您可以尝试查找并解决它。我无法在 Select2.js 源代码中找到任何此类假设。
  • 初始化 select2 后,您可以通过将创建的元素移动到 DOM 中的所需位置来跟进。您可能希望隐藏这些元素,直到它们被初始化。您还应该对此进行测试以确保它不会破坏 Select2.js 插件。

    $('.select2-container').each(function() {
      $(this).siblings('.elementSelector').first().after($(this));
    });
    

请注意,修改 Select2.js 源代码将使将来升级该库更加痛苦(取决于您的舒适/专业水平)。我建议您在修改插件之前完全确定问题不在您的代码中。

于 2012-12-05T03:54:59.230 回答