我正在使用页面加载treeTable jQuery插件并使用它如下:
jQuery('#tablename').treeTable();
它运作得很好。现在,如果我单击一个按钮并再次运行完全相同的行,我会收到一个错误,告诉我没有名为'treeTable'的方法。如果我只是简单地复制并粘贴该行以在加载期间多次运行,它们可以正常工作,因此只有在整个页面被摄入DOM后才会出现问题。现在,如果我将treeTable分配给变量,我可以再次成功运行代码,然后再次运行它:
在页面加载期间:
var treetable = jQuery('#tablename').treeTable();
点击按钮后:
treetable.treeTable();
工作正常。这将是一个可行的解决方案,如果不是因为我需要在动态加载的元素的treeTable插件中使用其他方法(我不知道提前生成的id,因此无法创建占位符对象来调用它们) 。因此,我需要弄清楚为什么在完成加载页面后,treeTable插件似乎正在消失。
我的设置实际上在我的小测试环境中完美运行,只有当我将页面集成到更大的网站时才会出现此问题。在更大的网站上使用的唯一其他jQuery插件是ui,dataTables和multiSelector。
答案 0 :(得分:0)
你提到你正在动态生成元素......可能是因为这些项是在找不到新元素之后添加的吗?
如果您正在使用jQuery 1.7或更高版本,可能尝试类似:
jQuery(document).on("click", ".btnClass", function(){
jQuery('#tablename').treeTable();
)};
如果您正在使用jQuery 1.3-1.6或更高版本,可能尝试类似:
jQuery(".btnClass").bind("click",function(){
jQuery('#tablename').treeTable();
)};