0

我正在使用页面加载 treeTable jQuery 插件并像这样使用它:

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

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

在页面加载期间:

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

点击按钮后:

treetable.treeTable();

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

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

4

1 回答 1

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();
)};
于 2012-02-23T20:48:23.947 回答