2011-01-13 12 views
0

私を助けてください、私は私の心を失っています。jquery fadeIn/Out IEの問題 - フラストレーション

私は絶対クラス/相対クラス(両方とも試してみました)のdivをすべてクラスのクラスで持っています。クリックするとdivが消えて正しいものがフェードインします。IE 6と7(時には8)以外のすべてのブラウザでうまく動作します。彼らはフェードアウトしますが、何も消えることはありません。このタイプの問題はネット全体を見渡しますが、助けてはいけません。助けてください。

これはコード

$("li#about").click(function(){ 
    $box.fadeOut(200); 
    $("div#about").delay(800).fadeIn(800); 
}); 

$("li#portfolio").click(function(){ 
    $box.fadeOut(200); 
    $("div#portfolio").delay(800).fadeIn(800); 
}); 

など......

私は何をしないのですのですか?デモここ - 死んだリンク!

+0

あなたが次のセレクタを変更する必要があり、時間節約するために: '$("#のポートフォリオは約#、#を別の、#and_antoher ")。(/*...*/)'をクリックすると、あなたはそれを何度もやることなく保存できます。 – RobertPitt

+0

私はあなたが意味するものは理解していますが、それぞれが対応するdivにフェードアウトする必要があります。だから、リ#については、div#で退屈にする必要があります - リ#ポートフォリオは、div#ポートフォリオの中で消える必要があります - それらがグループ化されている場合はクリックしたときに1つだけ同じdivが消えるでしょうか? – thom

答えて

1

場合には定義されていませんでした一度働いてアレントスクリプト内 の要素があるともこれを実行する必要があります私はこれを正しく読んでいますが、タグの種類が異なっていても、同じIDを持つ複数のHTMLタグがありますか?たとえば、li#aboutとdiv#aboutな​​どです。おそらくInternet Explorerは一意のIDを持っていれば好きだろうか?

+0

スターはありがとうございました。今度は恐ろしいテキストのぼかしを取り除く必要があります。 – thom

+0

月にもう一度感謝し、何か新しいことを学んだjqueryrocks - you rock – thom

0

あなたは$ boxを定義しません。 IEで、あなたはそれを定義する必要があります。

var $box = ......... 

あなたは$nav

EDITあなたは

+0

ドキュメントの準備ができてから定義しました – thom

+0

いいえいいえ: 'var $ name = $(" div#name "); $ nav = $( "div#nav"); $ box = $( "div.box"); ' –

1

メインナビゲーションにアンカーを追加してキーボードからアクセスできるようにしたり、JavaScriptをオフにしたりすることはできません。その後、次の操作を実行してもあなたのスクリプトを小さくすることができます。

<div id="nav"> 
<ul> 
    <li><a href="#about">about</a></li> 
    <li><a href="#portfolio">portfolio</a></li> 
    <li><a href="#social">social</a></li> 
    <li><a href="#contact">contact</a></li> 
</ul> 

$("#nav li a").click(function(){ 
    $box.fadeOut(200); 
    $($(this).attr('href')).delay(800).fadeIn(800); 
}); 
+0

あなたは(window.hostname、$(これを).attr( 'href'))instaed IEがattr IDを持つホスト名を返すかどうか思い出せません。 – Terminalpunk

+0

あなたの絶対に正しい私はアンカーを使用する必要があり、誰かが私がコードを最適化するのを助けてくれることを望んでいましたが、まだjqueryを手に入れて、ありがとう – thom