我正在使用select2
并将ajax数据加载到其中。
select2
元素位于动态加载的html(jQuery ui标签中的动态标签)中。
有一种情况我通过为容器div调用jQuery remove删除动态html(删除选项卡),并可能稍后再次加载它。
第一次一切都很完美。从第二次开始,当我打开select2元素时,我从select2 js中得到一个错误。
我怀疑select2可能会在这个html边界之外添加一些元素,这些元素稍后会导致一些错误,但这只是猜测。
当我想破坏select2控件时,我是否需要做一些特别的事情(那将完全清除它,因为它从未创建过)?
答案 0 :(得分:0)
由select2作者提供的淘汰赛自定义绑定,Ivan在元素dispose上调用destroy,以便正确清理控件。
虽然当我尝试打开select2控件时出现错误,但实际问题是jQuery UI对话框的其他自定义绑定。
它在绑定和对话创建之间创建了一场竞赛
最后,我将对话框id传递给视图模型,并通过直接jQuery调用从视图模型中打开它
这不是最美丽的解决方案,但它没有任何麻烦
我真的希望它可以节省一些人花在调查它上面的时间。