答案取決於如果你的部件是顯而易見的,當未被激活 - 例如,如果它是一個「暗示」型工具提示,顯示懸停那麼所有你需要做的就是不顯示工具提示時,它的無效。但是,如果它還添加了格式以顯示提示的位置,則還需要撤消該提示。
讓我們先看一個簡單的例子 - 假設我們有一個簡單的小部件filler
,當鼠標懸停在元素上方時,它只添加一個類(filled
)。這時正好有一個變量在全局範圍:
enableFiller = true;
然後檢查你的小工具:
$.widget("spacedog.filler", {
_create: function() {
var progress = this.options.value + "%";
this.element.hover(
function() {
if (enableFiller) {
$(this).addClass("filled");
}
},
function() {
$(this).removeClass("filled");
}
);
}
});
Fiddle。
請注意,我不檢查removeClass
中的標誌,因爲當鼠標位於小部件上時可能會禁用小部件,並且您可能不希望懸停顏色意外'粘在'上。
從那裏,它是很容易擴展到你的widget改變元件即使在關機的情況下。我會做的邏輯僞代碼:
您可以嵌入所述開啓/關斷功能到小工具,只要。看到這個答案的其他選項來存儲全球:How to declare a global variable in JavaScript?
如果你卡住你可以發佈(簡化版本)的小部件代碼和你迄今爲止嘗試過的,有人可能會幫助進一步。
爲什麼要加載它呢?如果你不需要特定的小部件,你可以下載沒有這個小部件的jQuery UI的編譯版本:http://download.jqueryui.com/download如果這不起作用,只需用一個空對象覆蓋小部件:'' $ .widget(「ui.accordion」,{});' – feeela
@feela不,那不是。我需要那個小部件,我只是需要在它關閉之後纔開始工作,直到它打開。我寫了這個小部件。 – nainy
「我只是需要在它關閉之後纔開始工作,直到它打開。」您想在關閉時使用小部件,但不想在打開時使用小部件?這是無稽之談。如果你禁用了一個小部件,你不能再使用它了。如果你想限制小部件只有一個實例,你需要實現[單例模式](http://en.wikipedia.org/wiki/Singleton_pattern),這對jQuery插件來說不是很常見,因爲那些應該經常工作作爲用戶包括他們。請描述你的目標/任務是什麼,並編輯你的問題,而不是在評論中寫下這些細節。 – feeela