0

以下は私のコードです(「オフ」について心配する必要はありません。ユーザーがクリックした場所に基づくオフセットです)。2行目では、既存のdivのクローンを作成してから、クローンされたコピーを表示しようとしていますか?しかし、それは機能しません。ただし、clone()を削除すると、コードは機能しますが、もちろん、必要なものではない既存のdivが表示されるだけです。

var off = $(this).offset();
var div = $('#testtt').clone();
div.css({ position: "absolute", top: off.top, left: off.left });
div.show();

任意のヒント?

4

7 に答える 7

2

div を複製していますが、DOM のどこにも挿入していません。

あなたがそれをするまで、それは存在しません

var off = $(this).offset();
var div = $('#testtt').clone();
div.css({ position: "absolute", top: off.top, left: off.left });

$('body').append(div);   <-- Appending to body here.. You can append anywhere you want
于 2012-10-15T15:52:41.263 に答える
2

ページに div を追加する必要があります。現在、表示せずにクローンへの参照を作成しただけです。

$("body").append(div);

于 2012-10-15T15:55:01.993 に答える
1

複製された div を html 内のどこかに添付する必要があります。例えば:

var off = $(this).offset();
var div = $('#testtt').clone();
div.css({ position: "absolute", top: off.top, left: off.left });

// append to parent of "this"
var parent = $(this).parent();
div.appendTo(parent);

// should be unnecessary, except if the style is display:none
//div.show();
于 2012-10-15T15:55:53.333 に答える
0

append()またはを使用して、別の要素に追加する必要がありますappendTo()

于 2012-10-15T15:53:34.997 に答える
0

おそらくIDの重複の問題

APIページから:

注: .clone() を使用すると、重複した id 属性を持つ要素が生成されるという副作用があり、これらは一意であるはずです。可能であれば、この属性を使用して要素を複製したり、代わりにクラス属性を識別子として使用したりすることは避けることをお勧めします。

複製後、複製された要素の ID を変更してみてください。

div.attr('id').val('#testtt')
于 2012-10-15T15:53:35.533 に答える
0

@andrewWhitaker のコメントによると、新しい要素を DOM に追加する必要があります。例えば

div.attr('id').val( div.attr('id')+"_cloned" );
$("#my_container_element_id").append(div);

を削除することもできます。

div.show();
于 2012-10-15T15:53:38.933 に答える
0

Jqueryで

$('.addRow').click(function(){
var off = $(this).offset();
var div = $('#testtt').clone();
div.css({ position: "absolute", top: off.top, left: off.left });
div.show();
div.appendTo($("#testtt");

}))

于 2012-10-15T15:56:37.660 に答える