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()根本不包括内联样式。你需要使用jQuery.css()函数;

$(".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

您必须从一个 DOM 元素中读取这些属性并将它们分配给另一个。

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

Check out the CSS documentation. All of the methods are designed with a signature that provides you the actual value of the property when called and assign objects to those properties if called with an additional argument.

于 2012-10-06T11:47:49.877 回答