2011-10-27 7 views
0

IE7では絶対に配置されたカスタムドロップダウンに問題がありますが、divは通常のテキストボックスの背後にあります。 私はすでにこのトピック:IE7 puts absolutely positioned div underneath, ignores z-indexを読んだことがありますが、解決策は私を助けませんでした。絶対位置divがIE7のテキストボックスの後ろに座っている

上記の質問は、私のdiv要素が

addEvent(document.getElementById("storeDown"), "click", showRegions); 
var showRegions = function(e) { 
     var dd = getTarget(e); 
     if(document.getElementById("regionOptions")) { 
      dd.parentNode.removeChild(document.getElementById("regionOptions")); 
      regionsShowing = false; 
     } else { 
      var ddNode = document.createElement("div"); 
      ddNode.id = "regionOptions"; 
      ddNode.style.backgroundColor = offColor; 
      var optNode; 
      for(var region in storeList) { 
       optNode = document.createElement("div"); 
       optNode.innerHTML = region; 
       ddNode.appendChild(optNode); 
      } 
      dd.parentNode.appendChild(ddNode); 
      regionsShowing = true; 
     } 
     cancelEvent(e); 
    } 

私の親のdivは、zインデックスをしているのdocument.writeを使用してのappendChildを通してそれを追加するJavaScriptを使用して作成されていることです尋ねた私のコードと人との違い相対的な位置に配置され、regionOptionsは絶対的に配置されており、Z-インデックスも追加しようとしましたが、違いはありませんでした。

+0

あなたはそれが異なっていると言いますが、あなたもリンクしたものと同じです。親ノードにz-indexを与え、relativeに設定します。 – epascarello

+0

明らかに、ページが既にロードされてインデックスが要素に割り当てられた後に追加することに違いがあります。 – Reina

+0

私は常に動的コンテンツで問題にぶつかります。あなたのソリューションは、コンテンツがロードされた場所を変更して、問題を回避しました。 HTML構造がわからないと、あなたの解決策は他の人には役に立たなくなります。 – epascarello

答えて

0

最終的にわかりました。追加する場所が変更されたので、すべてのテキストボックス(私の場合はボタンのdiv)の後にdivの後にdivに追加されました。dd.parentNode.appendChild(ddNode)の代わりに今はdocument.getElementbyId("buttons").appendChild(ddNode)、 CSSを変更して、特定のdivではなくページラッパーに相対的な位置に置くようにしなければならず、それを修正したようです。