2012-02-11 12 views
0

prototype.jsを使用して、divのかなり簡単な非表示/表示をしようとしています。ページはFirefox、Chrome、Safariで完全に正しく動作していますが、IEでは特定の部分は動作しません。つまり、divの初期隠れです。ページには3つのdivがあり、javascriptは書かれているので、一度に1つしか表示されないように切り替えることができます。この部分はIEでもうまく動作しますが、何らかの理由でページが最初に読み込まれると、3つのdivがすべて表示されます。私は、この現在の化身で私を残して、それらを隠すために多くのことを試してみた:IEでprototype.jsを使用しているディビジョンは表示されません

関連するHTML:

<div class="linkbar"> 
     <a class='normal' href="JavaScript:void()" sec="map">Map</a><br><br> 
     <a class='normal' href="JavaScript:void()" sec="tour">Tour</a><br><br> 
     <a class='normal' href="JavaScript:void()" sec="vid">Videos</a><br><br> 
    </div> 

<div class="bg"> 
    <div class="section" id="map" sec="map"> 
     ...html here... 
    </div> 
    <div class="section" id="tour" sec="tour"> 
     ...html here... 
    </div> 
    <div class="section" id="vid" sec="vid"> 
     ...html here... 
    </div> 
</div> 

関連Javascriptを:できるだけ早くだから、IEで

document.observe('dom:loaded', function() { 
    showSection("map"); 
    var currSection = 'map'; 

    $$('a.normal').each(function(p){ 
     Event.observe(p,'click',function(){ 
      var hr = $(this).readAttribute("sec"); 
      showSection(hr); 
      currSection = hr; 
     }); 
    }); 

    function showSection(sectionname){ 
     $$('div.section').each(function(d){ 
      d.hide(); 
     }); 
     $(sectionname).show(); 
    } 
}); 

</script> 

、リンクのいずれかを選択すると、divを正しく隠してから正しいものを開き、divを見つけて非表示にすることができます。しかし、IEで最初にページを読み込むと、何も隠されません。なぜこれが起こっているのか?

EDIT:今後の調査では、これはIEでの問題やDOMの読み込みに関する問題と関連している可能性があると考えています。

+1

解決策を回答として投稿し、タイトルから[[Solved]]タグを削除します。これはフォーラムではなく、Q&Aサイトです。各自の投稿内の質問と回答。 –

+0

私にお知らせいただきありがとうございます。かわった。 – FunkyDelPueblo

答えて

0

Prototype.jsはスタックオーバーフローエラーをキャッチしていた後、同じエラーをキャッチブロックに再スローしていました。何らかの理由で、IEがスローされたときに、最初の隠蔽を行っていたコードが呼び出されませんでした。私はprototype.jsに入り、エラーを再スローしていたキャッチブロックの行をコメントアウトし(828)、現在は正しく動作しています。

関連する問題