答案取决于您的小部件在不活动时是否明显——例如,如果它是在悬停时显示的“提示”类型工具提示,那么您需要做的就是在工具提示不活动时不显示。但是,如果它还添加了格式以显示提示的位置,您也需要撤消它。
让我们先来看一个简单的例子——假设我们有一个简单的小部件,当鼠标悬停在元素上时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");
}
);
}
});
小提琴。
请注意,我不检查中的标志,removeClass
因为当鼠标悬停在小部件上时,小部件可能会被禁用,并且您可能不希望悬停颜色意外“粘在”上。
从那里很容易扩展到您的小部件即使在关闭时也会改变元素的情况。我将逻辑作为伪代码:
您可以将打开/关闭功能嵌入到小部件中,只要它使用全局变量作为标志。有关存储全局变量的其他选项,请参阅此答案:如何在 JavaScript 中声明全局变量?
如果您遇到困难,您可以发布(简化版本)您的小部件代码以及您迄今为止尝试过的内容,有人可能会提供进一步的帮助。