2012-10-06 205 views
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(); 
    }) 
}); 

我想这个内嵌定位:<div class="instrument_info" id="drums" style="top:95px; left:294px">并把它放在另一个DIV。我怎么能插入我的jQuery代码?

回答

2

.html()根本不包含内联样式。你需要使用jQuery .css()函数;

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

而且由于.offset()回报{top: ..., left: ...}对象,你可以在上面更简洁的写:

$(".target_elements").css($("someElement").offset()); 
+0

谢谢Abody97 ...我是jquery的新手 –

+0

@tea_clipper不客气!如果这对你有用,不要忘记[接受这个答案](http://meta.stackexchange.com/a/5235/195555)! – Chris

+1

+1只是一个侧面说明,你也可以这样做:)'$(“。target_elements”)。css($(“someElement”)。offset());' – Pebbl

1

你必须从一个DOM元素读取这些属性,并将它们分配到另一个。

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

查看CSS documentation。所有方法的设计都带有一个签名,该签名在调用时为您提供属性的实际值,如果使用其他参数调用,则将对象分配给这些属性。

相关问题