2012-02-23 123 views
0

我加載了treetable中jQuery插件與網頁,並使用它像這樣消失後:jQuery插件頁面加載

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

,它工作得很好。現在,如果我單擊一個按鈕並再次運行完全相同的行,則會發生錯誤,告訴我沒有稱爲「treeTable」的方法。如果我簡單地複製並粘貼該行以在加載過程中多次運行,則它們可以正常工作,因此只有在整個頁面被攝入DOM後纔會出現問題。現在,我可以再次成功運行的代碼,如果我分配treetable中的變量,像這樣再次運行:

在頁面加載:

treetable.treeTable(); 

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

按鈕後點擊

這工作正常。這將是一個可行的解決方案,如果不是因爲我需要在動態加載元素的treeTable插件中使用其他方法(我不知道生成的ID會提前生成,因此無法創建佔位符對象來調用它們) 。所以我需要弄清楚爲什麼treeTable插件在頁面加載完成後似乎正在消失。

我的設置實際上在我的小測試環境中工作得很好,只有當我將我的頁面集成到一個更大的網站時,纔會出現此問題。在大型網站上唯一使用的其他jQuery插件是ui,dataTables和multiSelector。

回答

0

你提到你是動態生成的元素......可能是因爲這些項目是在它沒有找到你的新元素之後添加的嗎?

如果您使用jQuery 1.7或更高版本或許想是這樣的:如果你正在使用jQuery 1.3-1.6或更高版本或許試圖像

jQuery(document).on("click", ".btnClass", function(){ 
    jQuery('#tablename').treeTable(); 
)}; 

jQuery(".btnClass").bind("click",function(){ 
    jQuery('#tablename').treeTable(); 
)};