我的页面加载在我无法控制的类似portlet的应用程序中。当我单击portlet应用程序菜单上的链接时,我的页面将在portlet内容窗格中呈现。
已在JSP文件中声明的脚本正确加载。 我正在我的页面上创建动态选择元素并在其上应用Select2插件。
对于Select2,我观察到以下问题(我无法创建一个小提琴......或者不知道如何创建)。
当portlet第一次通过ajax在内容窗格中加载我的页面时,一切正常。 当我重新加载页面(仍然是ajax)时,我收到以下错误:
$selectBox.select2 is not a function
我认为这可能是因为在我的页面上可能会创建一个额外的Select2实例。
因此我在我的页面中添加了以下语句(在select2的脚本标记之前)
window.Select2 = undefined;
现在,select2插件加载正常。但是,当我单击下拉列表并单击页面上的任何其他位置时,我希望下拉菜单关闭,但我在控制台上收到以下错误
TypeError: self is undefined
有没有更好的方法来解决这个问题? 如何在再次加载之前从我的页面中干净地删除“Select2”?