Javascript 延迟jquery淡出

Javascript 延迟jquery淡出,javascript,jquery,tooltip,fadeout,tiptip,Javascript,Jquery,Tooltip,Fadeout,Tiptip,我正在使用一个名为tipTip的jquery插件(http://code.drewwilson.com/entry/tiptip-jquery-plugin). 我将其用于一个电子商务网站,当用户将鼠标悬停在产品图像上时,会出现一个信息框,其中包含有关该产品的更多详细信息 tipTip的默认行为是,一旦用户将鼠标移离链接,鼠标悬停框就会消失。您还可以将keepAlive:true设置为要求用户将鼠标移动到悬停框上以使该框消失。这两种情况都不适合我。我在悬停框中有链接,因此用户需要能够在不消失的情

我正在使用一个名为tipTip的jquery插件(http://code.drewwilson.com/entry/tiptip-jquery-plugin). 我将其用于一个电子商务网站,当用户将鼠标悬停在产品图像上时,会出现一个信息框,其中包含有关该产品的更多详细信息

tipTip的默认行为是,一旦用户将鼠标移离链接,鼠标悬停框就会消失。您还可以将keepAlive:true设置为要求用户将鼠标移动到悬停框上以使该框消失。这两种情况都不适合我。我在悬停框中有链接,因此用户需要能够在不消失的情况下进入该框。但我也不希望用户被要求输入框以使其消失。同时移除链接和框会使其消失

为了解决这个问题,我一直在尝试将jquery delay()放入tipTip javascript中。我也尝试过使用setTimeout。但我发现,我能做的就是在用户移动到另一个链接之前,悬停框一直保持不变。然而,我希望delay()表示它在我指定的毫秒数之后消失,而不管用户是否已移动到另一个链接

您可以在此处看到完整的tipTip js代码:

我一直试图通过修改最后几行来实现延迟。我尝试添加如下延迟:

 function deactive_tiptip(){
                                    opts.exit.call(this);
                                    if (timeout){ clearTimeout(timeout); }
                                    tiptip_holder.delay(1000).fadeOut(opts.fadeOut);
                            }

但正如我所说,这样做的效果是,悬停框保持在原来的位置,直到用户移动到另一个链接,并激活一个新的悬停框。我真的不明白为什么会这样。我的理解是,延迟函数应该简单地将淡出延迟1秒,然后淡出应该正常进行。

在尝试延迟另一个函数的调用时,我很幸运地使用了这个js函数

window.setTimeout(function(){callFunction(params);}, 4000);
让我知道这是否有帮助。我有一套js的技巧


关于,

因此,您真正想要做的是在热点区域中包含工具提示,并且仅当/如果用户同时离开初始项和工具提示时才停用

查找调用deactivate_tiptip()函数的“mouseout”事件存在的位置,并为tooltip类添加“add”函数。我不知道架构,但它可能看起来像这样:

tiptip.mouseOut(function () { deactivate_tiptip(); }; // Original
tiptip.add(".TOOLTIP").mouseOut(function () { deactivate_tiptip(); }; // Ammended

// OR:

tiptip.on("mouseOut", function () { deactivate_tiptip(); }; // Original
tiptip.add(".TOOLTIP").on("mouseOut", function () { deactivate_tiptip(); }; // Ammended

您必须将“.TOOLTIP”更改为正确的类。只有当您同时离开这两个位置时,才会触发停用功能。

Hi-谢谢您的回复。没有老鼠出没事件。这里调用deactivate的位是:org_elem.hover(function(){active_tiptip();}),function(){if(!opts.keepAlive){deactive_tiptip(); } }); 所以我不知道如何使用您建议的方法Hi Andrew,“.hover()”是一个jQuery函数。尝试在org_elemI尝试此操作后插入“.add”(.TOOLTIP)”,但其效果与我尝试延迟时相同-这意味着在我移动到另一个链接之前,悬停框将一直保留