2011-12-14 20 views
0

これまでに起こったことを見て、かなりの間苦労したことがある場合は、 いくつかのアクションに基づいてDIVを別のDIVに追加し、表示を表示に切り替える以下のコードがあります。jquery - appendToメソッドで問題が発生し、DIVのZインデックスが追加される可能性があります。

$(".personalizeflyout").prependTo("#personalizemenuitem"); 
$(".personalizeflyout").show(); 

私は同じ幅と高さpersonalizeflyoutのDIVとまったく同じ座標にiFrameを配置していますDIVを表示した後。以下のコード:

$(".personalizeflyout").iFrameShim(); 
jQuery.fn.iFrameShim = function() { 
    var o = $(this[0]); 
    $(".iFrameShimmer").attr("height",o.height()); 
    $(".iFrameShimmer").attr("width",o.width()); 
    $(".iFrameShimmer").css("top",o.offset().top); 
    $(".iFrameShimmer").css("left",o.offset().left); 
} 

これはpersonalizeflyout(予告Zインデックス10)

.personalizeflyout { 
margin: 0 auto; 
padding: 7px 0 0 0; 
width:434px; 
position: absolute; 
z-index:10; 
display:none; 
} 

ためのCSSです。そして、私はCSS以下でiFrameを持っています。

.iFrameShimmer { 
position:absolute; 
top: 400; 
left: 200; 
z-index:1; 
} 

問題説明: DIVのzインデックスは、私は上記のコードを使用するときにめちゃめちゃなっているようです。 しかし、appendToを使用せずに残りのコードを実行すると、同じディメンションと位置属性のiFrameを表示して配置するように表示を切り替えると、DIVはiFrameの上に適切にオーバーレイされます。私はいろいろなことを試みていますが、DIVを添付するappendToまたはprependToメソッドが問題の原因となっている理由はまだ分かりません。私はFireBugでテストし、z-indexは設定したものとして表示されます。 iFrameShimメソッドのすべてのコードの後に​​DIVとiFrame z-Indexを明示的に設定しても、それは何の違いも生じていないようです。

これもバージョン1.6.4でテストされ、問題が存在します。私はバージョン1.3.xを使用しています

答えて

1

Z-インデックスは、親要素が位置設定位置を持つ場合にのみ適用されます。したがって、#personalizemenuitemにCSSで指定された位置がない場合、ブラウザは.personalizeflyoutと.iFrameShimmerに設定しようとしているZインデックスを尊重しません。

+0

ご返信ありがとうございます。 #personalizemenuitemには既にposition属性が設定されています。しかし、身体まですべての親要素にposition属性を適用しても、それは何の違いもありませんでした。あなたが何か他のものをチェックするように私に提案することができたらどうかと思います... ありがとう、 – user1098829

+0

JSFiddleで例を設定してください。私はそれにスタートを与えた:http://jsfiddle.net/MHyKM/ –

関連する問題