2014-02-12 47 views
0

如果你看看這個頁面:jQuery的「:懸停」不會出現在Internet Explorer中工作

http://bbdesign.com/berksfoods.com/retail-deli-meats-roast-beef.htm

在將鼠標移動到該產品按鍵左上角(向右大標識)並向下移動出現的菜單。如果您離開產品按鈕和下拉菜單,它會消失。這是預期的。

大標誌是一個透明的PNG。我在產品按鈕和下拉菜單上有一個jQuery事件「mouseleave」,當鼠標不再覆蓋它們時,菜單消失。

如果鼠標移過標誌,當然,這意味着菜單關閉(因爲它不是「mouseleave」容器的子項)。我解決了這個通過添加以下:

if (!$('img#logo').is(':hover')){ 
    $(this).children('div#menu1bg').slideUp(200); 
} 

換句話說,如果觸發「鼠標離開」事件,第一次檢查,以確保鼠標還沒有結束標誌(IMG#標誌)。如果結束了該標誌,請不要關閉菜單。

這似乎很好地工作,除非它在Internet Explorer中完全不起作用。是否存在':hover'和該瀏覽器的已知問題?或者有沒有其他的編碼方式可以在所有瀏覽器上更好地工作?

謝謝!

+0

IE的哪個版本? – helion3

+0

那麼,理想情況下,我需要這個在任何最新版本的IE中工作,因爲各種用戶都將訪問該網站。 –

+0

我的意思是,哪個版本的IE顯示錯誤 – helion3

回答

0

這個問題不在你的jQuery中,它在你的CSS中。 IE不支持CSS標籤,但它應該在IE7中工作。在任何情況下,嘗試將嚴格!DOCTYPE

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 

這個DTD包含所有的HTML元素和屬性,但不包括表象的或過時的元素(如字體)。不允許框架集。

IE6-讓:hover行爲在a元素,雖然。將您的徽標包裹在a標記中,它可能有效。

IE CSS support

如果你看看這個,有沒有什麼你可以

實際上,在任何情況下,使用jQuery的.mouseLeave.hover功能:

$('img#logo').mouseLeave(function() 
{ 
    $(this).children('div#menu1bg').slideUp(200); 
}); 
+0

謝謝,這是有幫助的。我嘗試完全擺脫':hover',而是將該元素放入我正在測試mouseLeave的事件中。我放置位置:絕對位置,使其位於按鈕外部,但位於之前的位置。謝謝! –

+0

@BBDesign不客氣,我希望你能讓它出現在按鈕中,祝你好運 – Cilan

相關問題