Javascript 每当popover关闭时,multiselect将重置

Javascript 每当popover关闭时,multiselect将重置,javascript,jquery,twitter-bootstrap-3,popover,bootstrap-multiselect,Javascript,Jquery,Twitter Bootstrap 3,Popover,Bootstrap Multiselect,我在popover中有一些multiselect,但是每当popover关闭时,multiselect就会被删除,有没有办法在popover中放置multiselect而不丢失所选数据 在我单击按钮时创建multiselect的代码中,我相信这可能是问题的原因,但我找不到其他方法将multiselect添加到popover。我遵循了这个问题的一个答案: 这是我的代码: 让popover_过滤器=“”+ ''+ “Contábil e Financeiro”+ “财政论坛”+ “Pessoal

我在popover中有一些multiselect,但是每当popover关闭时,multiselect就会被删除,有没有办法在popover中放置multiselect而不丢失所选数据

在我单击按钮时创建multiselect的代码中,我相信这可能是问题的原因,但我找不到其他方法将multiselect添加到popover。我遵循了这个问题的一个答案:

这是我的代码:

让popover_过滤器=“”+
''+
“Contábil e Financeiro”+
“财政论坛”+
“Pessoal e Trabalhista”+
“Gestãe controladoria”+
''+
''+
“Contábil e Financeiro”+
“财政论坛”+
“Pessoal e Trabalhista”+
“管理控制机构管理控制机构管理控制机构管理控制机构管理控制机构”+
''+
''+
“阿根达多”+
“结论”+
“彭登特”+
“他们也是”+
''+
''+
“Contábil e Financeiro”+
“财政论坛”+
“Pessoal e Trabalhista”+
“Gestãe controladoria”+
''+
''
$('#活动_过滤器_btn').popover({
html:true,位置:'bottom',内容:popover_过滤器,触发器:'click',
}).on('单击',函数(){
$(“#活动(过滤器)扇区”).multiselect()
$(“#活动(筛选)公司”).multiselect()
$(“#活动_筛选器_状态”).multiselect()
$(“#活动(筛选)用户”).multiselect()
}).on(“hide.bs.popover”,函数(){
设总数=0
总计+=$('#活动_过滤器_扇区').val().length
总计+=$('#活动_筛选_公司').val().length
总计+=$('#活动_过滤器_状态').val().length
总计+=$('#活动_过滤器_用户').val().length
如果(总数>0){
$(this.addClass('btn-primary'))
$(this.removeClass('btn-default'))
}否则{
$(this.addClass('btn-default'))
$(this.removeClass('btn-primary'))
}
});


Filtrar
解决此问题的一种方法是将选定的值存储在popover open/close之间持续存在的某个位置

打开时,使用
.multiselect('select',[value\u arr])
设置选择值

关闭时,存储值,以便下次打开popover时可以访问这些值

我在这里只使用了4个变量,但可以想象,您可以使用任何对项目方便的存储机制

让popover_过滤器=“”+
'' +
“Contábil e Financeiro”+
“财政论坛”+
“Pessoal e Trabalhista”+
“Gestãe controladoria”+
'' +
'' +
“Contábil e Financeiro”+
“财政论坛”+
“Pessoal e Trabalhista”+
“管理控制机构管理控制机构管理控制机构管理控制机构管理控制机构”+
'' +
'' +
“阿根达多”+
“结论”+
“彭登特”+
“他们也是”+
'' +
'' +
“Contábil e Financeiro”+
“财政论坛”+
“Pessoal e Trabalhista”+
“Gestãe controladoria”+
'' +
'';
//初始化存储变量:
让扇区=[];
让公司=[];
让状态=[];
让用户=[];
$('#活动_过滤器_btn').popover({
是的,
位置:'底部',
内容:popover_过滤器,
触发器:“单击”,
}).on('单击',函数()){
//打开时,将选择设置为存储值
$(“#活动"过滤器"扇区)。多选('select',扇区)
$(“#活动(筛选)公司”)。多选('select',公司)
$(“#活动(筛选)状态”)。多选(“选择”,状态)
$(“#活动(筛选)用户”)。multiselect('select',用户)
}).on(“hide.bs.popover”,函数(){
//关闭时,存储值
扇区=$('#活动_过滤器_扇区')。val()
公司=$(“#活动_过滤器_公司”).val()
状态=$('#活动_过滤器_状态')。val()
用户=$('#活动_过滤器_用户')。val()
设总数=0
总+=扇区长度
总计+=公司长度
总计+=状态长度
总计+=用户数。长度
如果(总数>0){
$(this.addClass('btn-primary'))
$(this.removeClass('btn-default'))
}否则{
$(this.addClass('btn-default'))
$(this.removeClass('btn-primary'))
}
});


Filtrar
我认为您的直觉是正确的,它正在重置,因为每次关闭popover时元素都会被销毁并重新创建,有效地将所有MultiSelect设置回默认值。