2011-12-22 11 views
-1

このサイトに行くとhttp://rochesterwaterskishow.com/staging、FFまたはChromeのaboutリンクにカーソルを合わせるとメニューがポップアップします。 IE8で同じことをすると、メニューは表示されません。私はIE7をチェックしていない。IE8の小さなjqueryのバグ

IE8でメニューが表示されない原因は何ですか?

のjQuery:

$('#flyout').hover(function() { 
     $(this).children('div').show(); 
    }, function() { 
     $(this).children('div').hide(); 
    }); 
+0

スライダー効果はクールです(私はそれを使用しません) –

+0

'$("#flyout ")。delegate(" * "、" hover "、f、g);' – bevacqua

答えて

1

Funnily十分には、バグは、すべてのメニューやあなたのjQueryの表現ではありません。これは、上記の行にあります:

<h1><a href="http://rochesterwaterskishow.com/staging/index.php/site/index"><img src="http://rochesterwaterskishow.com/staging/assets/images/RWSStandardLogo.gif" class="logo" /></h1> 

はIEがグラグラスローになり、ここで何の終値</a>、ありません。それを修正して、あなたは行かなくてはなりません。

+0

良いキャッチです。私はちょうどいくつかの行を調べる必要があると思う。ありがとう。 – Catfish

+0

私が気づいた唯一の方法は、IE8で開き、 'display:none'のCSSルールを手動で削除することでした。それがうまくいけば、問題はDOM解析に関連していて、無効なものが見つかるまで後方に読まなければならないことが分かっていました。 CSSルールを手動で削除してもうまくいかなかった場合は、問題がjQueryにあることがわかりました。 – Interrobang

0

問題は$(this).children('div')がIE8で動作していないことです。私はなぜか分からない(編集:Interrobangの投稿に記載されている未閉じの<a>タグのためだと思います)。私はこれが動作する必要があることを知りました

:あなたは/ショーを非表示にするdivタグにクラスを置く場合

$('#flyout').hover(function() { 
    $(this).find('div').show(); 
}, function() { 
    $(this).find('div').hide(); 
}); 

コードを、一般的には、この種の問題に対してより堅牢になりますと、正確な場所にdivタグが1つしかないことに頼るよりも、より堅牢な方法を見つけることができます。

関連する問題