奇妙な jQuery.offset() の問題があります。
コンポーネントが階層化され、その下のリンクの機能が取り除かれています。上層は透明で空です。
私の解決策は、すべてのリンク (すべてのa
要素) を反復処理し、それらの位置 (上、左、高さ、幅の値) と href を取得しa
、同じ位置に新しい要素を作成して上のレイヤーに配置することです。
問題: この方法は、4 つのリンクのうち 3 つに有効です。あるケースでは、新しい要素が上から約 120 ピクセル離れた位置にありますが、サイズと左へのオフセットは問題ありません。最後のアイデアはありますか?
$("#container A").each(function(index){
var top = $(this).offset().top;
var left = $(this).offset().left;
var width = $(this).width();
var height = $(this).height();
var href = $(this).attr("href");
$('<A id="layer'+index+'"></A>').addClass("overlayer").css("left", left).css("top", top).css("width", width).attr("href", href).css("height", height).appendTo('#toplayer');
}
注:#container
はすべてのリンクを含む下層、#toplayer
は上層です。
.overlayer の CSS クラス:
.overlayer {
background-color: #cc00cc;
position: absolute;
z-index: 10;
cursor: hand;
}