我有一段代碼,我似乎無法修復。一切工作正常,如果我不遍歷該函數,或者如果我不克隆。當我把它們放在一起時,divs的結構變得混亂。Jquery:迭代內部克隆(.each)加擾html結構
任何代碼之前,我先說:
<div class="origin"></div>
然後我寫了一些劇本中添加HTML,它應該像下面這樣的結構: 代碼:
<div id="id0">
<div class="scroller">
<div class="origin"></div>
</div>
<a href="#"></a>
</div>
<div class="viewport"></div>
<div id="id1">
<div class="scroller">
<div class="origin"></div>
</div>
<a href="#"></a>
</div>
<div class="viewport"></div>
它開始很好,但如果取消註釋下面的兩行,帶ID的第二個div現在位於先前的視口內,而不是纏繞「原點」。我試圖將圖像和可能的標題複製到每個「原點」內部到自己的視口內(圖像上有兩個周圍的div)。
代碼:
function writeGallery(i) {
var startDiv = $("div.origin:eq("+i+")");
startDiv.wrap('<div class="scroller"></div>');
startDiv.parent().wrap ('<div id="id' + i + '" />');
var horizThumbwrap = startDiv.parent().parent();
horizThumbwrap.append ('<a href="#"></a>');
horizThumbwrap.after ('<div class="viewport" />');
//var horizViewport = startDiv.parent().parent().next(".viewport");
//startDiv.clone().appendTo(horizViewport);
}
$(document).ready(function(){
$("div.origin").each(function(index) {
writeGallery (index);
});
$('#result').text($('#container').html());
});
在撥弄這裏的代碼(去掉註釋2線看亂):http://jsfiddle.net/AjSnx/
我能想到的是唯一需要重寫它以各種方式和只希望我能找到一些有用的東西。但是因爲這是我的第一個jQuery項目,所以我想了解我在這裏做錯了什麼。
任何人都可以幫忙嗎? 謝謝!
要附加克隆的數據'horizViewport'這是不確定的。 – undefined 2012-07-14 14:38:57
它在第一次迭代中起作用 - 你是否取消了兩條線的註釋?如果它沒有定義,我不明白它如何工作。或者嗯,我想這可能會導致我不明白。 – 2012-07-14 14:45:08