我正在使用insertAfter
函數移動div
元素的位置(和父母)。 事情是這樣的:存儲DIV元素的原始父代
$('.annotation i').click(function(){
$('.annotation').find('.comment').insertAfter('#container');
});
我想知道是否有可能以某種方式與原始親本存儲,以便之後的另一個用戶動作的div
元素移回原來的位置(原母公司下)。
謝謝。
我正在使用insertAfter
函數移動div
元素的位置(和父母)。 事情是這樣的:存儲DIV元素的原始父代
$('.annotation i').click(function(){
$('.annotation').find('.comment').insertAfter('#container');
});
我想知道是否有可能以某種方式與原始親本存儲,以便之後的另一個用戶動作的div
元素移回原來的位置(原母公司下)。
謝謝。
var parent = $('.annotation').find('.comment').parent();
會給你的.comment類的元素的父母。
你提到存儲它的位置。你可能會發現JQuery Index有幫助。以類似的方式存儲父級索引或存儲特定.comment元素的位置以供以後使用。
您可以創建元素的副本,並隱藏原始:
$e = $('element');
$c = $e.clone();
$e.hide();
然後你就可以摧毀移動的元素,並再次顯示原始:
$e.show();
$c.remove();
或替換原有移動的一個:
$e.replaceWith($c);
如果原始元素有一個ID屬性,你會想更改或刪除它的克隆,以及讓所有的元素保留的唯一ID:
$c.attr('id','new-unique-string');
// or
$c.removeAttr('id');
這是克隆而不是移動它,如果有的話? – Alvaro 2013-05-07 14:26:58
您根本不必存儲父項,因爲原始元素正是您離開它的地方。 – Blazemonger 2013-05-07 14:28:14
@Steve如果您需要隱藏克隆並將其移回原始位置(也稱爲「將div元素移回到原始位置」,您說過),則可以保留原始位置。 – RaphaelDDL 2013-05-07 14:28:57
這一個存儲到原來的父級的引用使用.data()
函數。 。
$('.annotation i').click(function(){
$('.annotation').find('.comment').each(function() {
$(this).data('oparent', $(this).parent());
$(this).insertAfter('#container');
});
});
function anotherUserAction(comment) {
comment.appendTo(comment.data('oparent'));
}
什麼火焰的意思是:。'$( 'yourDiv ')隱藏()的clone()appendTo(' #集裝箱 ')顯示()addClass(' 克隆');'會搶。 yourDiv,隱藏它,克隆它,追加,顯示克隆並向克隆中添加一個類(這樣你就可以在後面執行'$('。yourDiv.clone')' – RaphaelDDL 2013-05-07 14:25:49
@RaphaelDDL這個元素在移動後會遭到修改。它包含一個textarea,因此我需要再次克隆它,刪除原來的一個,然後添加這個返回到原來的狀態。是不是再簡單一點呢? – Alvaro 2013-05-07 14:31:14
你可以做'$( '.yourDiv')。replaceWith('。yourDiv.clone')。show();'當你需要回到第一個地方時(顯示是因爲yourDiv在我們克隆的時候被隱藏) – RaphaelDDL 2013-05-07 17:25:12