2012-10-06 146 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。所有方法的設計都帶有一個簽名,該簽名在調用時爲您提供屬性的實際值,如果使用其他參數調用,則將對象分配給這些屬性。

相關問題