我遇到了.hover()的問題。我想暫時禁用它,這是我所做的,但它有一個意想不到的副作用,我想擺脫。jQuery:暫時禁用懸停...意外的副作用
以下是我的小提琴:http://jsfiddle.net/sdPVG/7/
我試圖禁用懸停,而工具提示和下拉菜單打開(topTip和topDrop)。點擊紅色圖標(topIconNew)打開這些div,這會擴大工具提示。不幸的是,工具提示在點擊後會永久擴展。我希望div恢復到正常(較窄)的狀態。我哪裏錯了?
任何和所有的幫助表示讚賞。謝謝!
我遇到了.hover()的問題。我想暫時禁用它,這是我所做的,但它有一個意想不到的副作用,我想擺脫。jQuery:暫時禁用懸停...意外的副作用
以下是我的小提琴:http://jsfiddle.net/sdPVG/7/
我試圖禁用懸停,而工具提示和下拉菜單打開(topTip和topDrop)。點擊紅色圖標(topIconNew)打開這些div,這會擴大工具提示。不幸的是,工具提示在點擊後會永久擴展。我希望div恢復到正常(較窄)的狀態。我哪裏錯了?
任何和所有的幫助表示讚賞。謝謝!
你改變了與動畫的topTip div的大小...需要將其設置回它的原始尺寸。您的「//隱藏下拉菜單和工具提示上點擊之外」功能更改爲:
$(document).click(
function(){
hoverEnabled = true;
$('div.topTip').animate({width:100,marginLeft:0},'fast');
$('div.topTip, div.topDrop').hide();
}
);
在點擊處理程序中,您忘記重新啓用懸停。
你還需要將原來的寬度存儲在腳本的開始,恢復爲每個工具提示格的值。 JsFiddle更新。
請注意,其他答案通過對值「100px」進行硬編碼來設置舊寬度。這已經在你的CSS中定義,並且重複它是一個糟糕的編程習慣。我的解決方案在開始時讀取值並在需要時重新使用它,因此如果您更改了css,則無需更新您的js。
您需要刪除擴展後設置的寬度。
在你$(document).click
,進行以下更改:
$('div.topTip, div.topDrop').hide();
到
$('div.topTip, div.topDrop').hide().css('width', '');
非常感謝您解決另一個問題我張貼此之後實現的,我有(我正要試圖刪除這個帖子圖它在重新發布之前)。感謝您的修復,我現在已經在必要的地方重新啓用了懸停,並且編輯了我的帖子。但是,正如您所看到的,topIconNew單擊並且工具提示已經擴大後,即使重新啓用懸停,它仍然會變寬。我如何解決這個問題,使其恢復到原始大小? – jstacks 2011-12-26 04:09:38
@jstacks我也修復了這個問題。點擊答案 – 2011-12-26 04:11:10
+1中的鏈接,讓我們直接對硬編碼的寬度值進行設置! – vdbuilder 2011-12-26 05:50:58