我使用所謂tipTip一個jQuery插件(http://code.drewwilson.com/entry/tiptip-jquery-plugin)。我將此用於電子商務網站,當用戶將鼠標懸停在產品圖像上時,會出現一個信息框,其中包含有關該產品的額外詳細信息。延遲一個jQuery淡出
tipTip的默認行爲是,一旦用戶將其鼠標從鏈接懸停框消失。您還可以設置keepAlive:true以要求用戶將鼠標移動到懸停框上以使框消失。這兩種情況都不適合我。我在懸停框中有鏈接,因此用戶需要能夠在不消失的情況下輸入框。但是我也不希望用戶被要求輸入框以使其消失。關閉鏈接和框應使其消失。
爲了解決這個問題,我一直試圖把一個jQuery延遲()到tipTip的JavaScript。我也嘗試過使用setTimeout。但我一直在發現,我所能發生的一切就是懸停框一直保留,直到用戶移動到另一個鏈接上。儘管我希望delay()意味着它在我指定的毫秒數之後消失,而不管用戶是否已經移動到另一個鏈接。
你可以看到完整的tipTip JS代碼在這裏:http://code.google.com/p/geoapps/source/browse/trunk/capstones/talha_khopekar_2012/jquery.tipTip.js?spec=svn108&r=108
我一直在試圖通過修改的最後幾行來實現的延遲。我嘗試添加的延遲如下:
function deactive_tiptip(){
opts.exit.call(this);
if (timeout){ clearTimeout(timeout); }
tiptip_holder.delay(1000).fadeOut(opts.fadeOut);
}
但正如我所說,這樣做的效果是,懸停框保持在原位,直至用戶移動到另一條鏈路,並激活新的懸停框。我真的不明白這是爲什麼。我的理解是,延遲功能應該簡單地延遲1秒,然後fadeOut應該照常進行。
我試過,但它有,當我試圖延遲同樣的效果 - 這意味着懸停盒依然是直到我移動到另一個鏈接 – Andrew 2012-03-26 23:26:27