Bootstrap select destroy从DOM中删除原始选择

时间:2014-12-06 16:34:02

标签: jquery twitter-bootstrap twitter-bootstrap-3 bootstrap-select

我目前正在其中一个项目中使用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插件中的问题,还是有另一种方法可以删除引导程序选择并重新显示原始选择。

2 个答案:

答案 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");