我目前正在其中一个项目中使用Bootstrap select插件。 我有一个动态生成的表,其中包含select元素,然后我使用以下命令将其转换为bootstrap select:
_tr.find('select.selectpicker').selectpicker({ size: 10 });
其中_tr
是我添加select元素的行。这工作正常,显示bootstrap选择,在firebug中我仍然看到原始的select元素。
现在每行都有一个按钮,用于删除(销毁)引导程序选择。 但它也删除了原始选择,这就是问题,因为我仍然需要原始选择来做其他事情。
我使用以下命令销毁:
$('select#begin' + _week + _day).selectpicker("destroy");
$('select#end' + _week + _day).selectpicker("destroy");
$('select#pause' + _week + _day).selectpicker("destroy");
在其他插件中如果使用destroy,它会再次显示原始元素。这是boostrap select插件中的问题,还是有另一种方法可以删除引导程序选择并重新显示原始选择。
答案 0 :(得分:3)
找到解决方案,我编辑插件函数destroy而不是删除原始元素,我把它显示回来:
remove: function () {
this.$newElement.remove();
this.$element.show(); // First it was this.$element.remove();
}
答案 1 :(得分:3)
我非常感谢你的方法,因为它对我有很大帮助。 但是我发现了一种在不改变原始代码的情况下改进方法的方法。 这是我做的:
jQuery.fn.selectpicker.Constructor.prototype.removeDiv = function () {
this.$newElement.remove();
this.$element.show();
};
之后,我们可以使用:
jQuery("#some_id").selectpicker("removeDiv");