我在select
上使用select2,我通过一个名为list()
的函数动态填充数据(使用json和其他过滤器)。
我想在每次打开下拉列表时调用list()
以刷新数据。
我能做到这一点的唯一方法是调用.select2("destroy").select2()
我的问题是,只有当我从另一个元素启动它时,它才起作用。假设$(".header").click(function() { ... })
当我调用任何内置事件(select2-opening
,select2-open
,select2-focus
...)时,它不起作用。
有什么想法可以在打开下拉菜单时调用吗?
编辑:
通过在事件“ select2-opening”上调用list()
即可解决此问题。
它以.empty()
开头,然后开始填充我要应用select2插件的<select>
。
编辑2:
更好的解决方案是将事件称为“选择焦点”,它可以实时做出更好的反应。
最佳答案
如果要从服务器重新加载数据,请考虑使用ajax构造函数属性。
您可以使用查询回调来构建远程数据重新加载或本地数据重新加载。
只需实现获取更新数据的方法