簡體   English   中英

如何手動禁用被調用的插件?

[英]How can I manually disable a called plugin?

我有一個即將完成的站點,現在正在修復一些小錯誤。 可以在此頁面找到開發頁面,並且使用的一些jquery插件存在一些問題。

該站點的主要部分是持久性的,並使用頁面控制器來處理ajax導航和插件實例化。 不過,我發現,在網站上單擊幾下后,即導航離開頁面並返回,當再次調用頁面函數時,它們將中斷,並且所有javascript都將停止。

我想知道,是否有可能清除當前處於活動狀態的已定義“活動事件”。 在繞過一條魚之后,我開始忙於分配一個變量,然后將該變量賦予功能,但沒有魚。 舉一個例子,我如何去禁用簡化的以下代碼:

$('#carousel-awards').infiniteCarousel();
$('#another-test').timelinr();

這是兩個jquery插件,沒有用於“關閉”的內置方法。 從本質上講,我想使用某種垃圾回收器,因為一旦用戶離開使用上述兩個功能的頁面,該頁面的HTML就會暫時被破壞。

為了清楚起見,我嘗試了以下方法:

1. $('#carousel-awards').unbind('infiniteCarousel');

2: $('#carousel-awards').off('infinitCarousel');

3: $('#carousel-awards').infiniteCarousel = function() { return false; }

4: var test;
   test = $('#carousel-awards').infiniteCarousel();
   test = function(){ return false; }

謝謝您抽出寶貴時間閱讀我的問題

這取決於插件。 但是,如果它使用jQuery UI窗口小部件系統,則很有可能使用.infiniteCarousel('destroy').timelinr('destroy')從您的元素中刪除這些窗口小部件。

我不確定這些插件,但是通常在元素上調用.remove()也會刪除附加的處理程序,數據對象等。 使它們可以被垃圾回收。

通常,插件,特別是那些將數據存儲在其他地方或在不同位置創建DOM元素的插件,會提供destroy選項。 如果您沒有,則a)不需要,或b)插件編碼不正確-您可能需要挖掘並修復它,或使用其他插件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM