jQuery插件在页面加载后消失

时间:2012-02-23 20:21:47

标签: jquery treetable

我正在使用页面加载treeTable jQuery插件并使用它如下:

jQuery('#tablename').treeTable();

它运作得很好。现在,如果我单击一个按钮并再次运行完全相同的行,我会收到一个错误,告诉我没有名为'treeTable'的方法。如果我只是简单地复制并粘贴该行以在加载期间多次运行,它们可以正常工作,因此只有在整个页面被摄入DOM后才会出现问题。现在,如果我将treeTable分配给变量,我可以再次成功运行代码,然后再次运行它:

在页面加载期间:

var treetable = jQuery('#tablename').treeTable();

点击按钮后:

treetable.treeTable();

工作正常。这将是一个可行的解决方案,如果不是因为我需要在动态加载的元素的treeTable插件中使用其他方法(我不知道提前生成的id,因此无法创建占位符对象来调用它们) 。因此,我需要弄清楚为什么在完成加载页面后,treeTable插件似乎正在消失。

我的设置实际上在我的小测试环境中完美运行,只有当我将页面集成到更大的网站时才会出现此问题。在更大的网站上使用的唯一其他jQuery插件是ui,dataTables和multiSelector。

1 个答案:

答案 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();
)};