0

ある要素の内容をコピーして別の要素に配置するこのコードがあります。しかし、実際にはインライン スタイル、特に配置をコピーしたいと思います。a.starホバーしたときに情報ウィンドウが正確に表示されるように、位置スタイルのみをコピーする方法はありますか?

$(document).ready(function(){
  $('a.star').hover(function(){
    var instrument = '.instrument_info#' + $(this).attr('instrument');
    var htmlCode = $(instrument).html();
    $('.instrument_output .instrument_detail').html(htmlCode);
    $('.instrument_output').slideToggle();
  })
});

this: のインライン ポジショニングを取得し<div class="instrument_info" id="drums" style="top:95px; left:294px">、別の div に配置します。これを jQuery コードに挿入するにはどうすればよいですか?

4

2 に答える 2

2

.html()インライン スタイルはまったく含まれません。.css()jQuery関数を使用する必要があります。

$(".target_elements").css({top: $("someElement").offset().top, left: $("someElement").offset().left});

そして.offset()、オブジェクトを返すので{top: ..., left: ...}、上記をよりコンパクトに次のように書くことができます:

$(".target_elements").css($("someElement").offset());
于 2012-10-06T11:36:37.783 に答える
1

これらのプロパティを1つのDOM要素から読み取り、別の要素に割り当てる必要があります。

 var foo_offset = $('#foo').offset() # returns {left: 100, top: 100}
 $('#bar').offset(foo_offset)        # #bar's offset set to #foo's

CSSのドキュメントを確認してください。すべてのメソッドは、呼び出されたときにプロパティの実際の値を提供し、追加の引数で呼び出された場合にそれらのプロパティにオブジェクトを割り当てる署名を使用して設計されています。

于 2012-10-06T11:47:49.877 に答える