0
我使用jQuery插件Select2.js v3.2,它似乎在元素之前插入select2-container
而不是在元素之后。这造成了一些代码假设先前的兄弟会破坏。是否有一个“追加后”选项来初始化容器,所以我知道它总是会追加到元素后面?Select2.js插件prepends而不是附加容器所选元素
我使用jQuery插件Select2.js v3.2,它似乎在元素之前插入select2-container
而不是在元素之后。这造成了一些代码假设先前的兄弟会破坏。是否有一个“追加后”选项来初始化容器,所以我知道它总是会追加到元素后面?Select2.js插件prepends而不是附加容器所选元素
似乎没有办法指定是在元素之前还是之后插入select2-container
。我看到它的方式有几种选择:
.before(this.container);
变为.after(this.container);
。在初始化select2之后,您可以通过将创建的元素移动到DOM中的所需位置来进行跟踪。您可能想要隐藏这些元素,直到它们被初始化。你也应该测试这个以确保它不会破坏Select2.js插件。
$('.select2-container').each(function() {
$(this).siblings('.elementSelector').first().after($(this));
});
注意修改Select2.js源将升级在未来更痛苦的是库(取决于你的舒适性/专业知识水平的)。我建议您在修改插件之前完全确定问题不在您的代码中。
感谢您的回复。所有有效的点。对于第二个要点,它是我的代码(其他人编写的代码,但我可以更改)。我想我会坚持选择而不是Select2。首先尝试Select2的原因是动态宽度。 – styfle
不客气。没有使用任何一个库,我不完全确定你的意思是动态宽度。我愿意打赌有一种方法可以用自定义的js或css来完成它。 –
从本质上讲,Select2是一个选择了更多功能的分支。其中一些功能实际上只是模仿本地选择元素。当我说动态宽度时,我的意思是你可以用Select2设置100%的宽度,但不能选择。 – styfle