6

我目前在我的一个项目中使用Bootstrap 选择插件。我有一个动态生成的表,其中包含选择元素,然后我使用以下命令将其转换为引导选择:

_tr.find('select.selectpicker').selectpicker({ size: 10 });

_tr我添加选择元素的行在哪里。这工作正常,显示了引导选择,在萤火虫中我仍然看到原始的选择元素。

现在每一行都有一个按钮,用于删除(销毁)引导选择。但它也删除了原始选择,这就是问题,因为我仍然需要原始选择来做其他事情。

我使用以下命令进行销毁:

 $('select#begin' + _week + _day).selectpicker("destroy");
 $('select#end' + _week + _day).selectpicker("destroy");
 $('select#pause' + _week + _day).selectpicker("destroy");

在其他插件中,如果您使用destroy,它会再次显示原始元素。这是 boostrap 选择插件中的一个问题,还是有另一种方法可以删除引导选择并重新显示原始选择。

4

2 回答 2

3

找到了解决方案,我编辑了插件函数 destroy ,而不是删除原始元素,而是将其显示回来:

remove: function () {
  this.$newElement.remove();
  this.$element.show(); // First it was this.$element.remove();
}
于 2014-12-06T16:58:07.430 回答
3

我非常感谢您的方法,因为它对我有很大帮助。但是我找到了一种在不更改原始代码的情况下改进您的方法的方法。这是我所做的:

jQuery.fn.selectpicker.Constructor.prototype.removeDiv = function () {
    this.$newElement.remove();
    this.$element.show();
};

之后,我们可以使用:

jQuery("#some_id").selectpicker("removeDiv");
于 2015-08-06T09:56:40.233 回答