在 jQuery 中是否可以交换两个容器的位置 - 无论是在视觉上还是在 DOM 中,而且还可以为结果设置动画?
我有:
<div id="container">
<div id="one"><a class="moveUp">Up</a></div>
<div id="two"><a class="moveUp">Up</a></div>
<div id="three"><a class="moveUp">Up</a></div>
</div>
单击该链接会将该 div 的位置与上面的位置交换。大多数示例使用绝对定位并偏移顶部属性来实现这一点......但是当用户在其他地方调用函数时,我需要按照数据在屏幕上显示的顺序读取数据。
所以我想出了这个:
$('#container div').on('click', '.moveUp', function() {
divInQuestion = $(this).closest('div').attr('id'); //id of this div
if (divInQuestion > '1') {
switchWithDiv = divInQuestion - 1; //id of other div
firstSelector = $('#chapterset-'+divInQuestion).html(); //save contents of each div. I actually don't
secondSelector = $('#chapterset-'+switchWithDiv).html(); //do it this way, I regenerate the content
$('#chapterset-'+divInQuestion).html()firstSelector.replaceWith(secondSelector); //replace div with other div
$('#chapterset-'+switchWithDiv).html()secondSelector.replaceWith(firstSelector);
}
});
现在,我的代码实际上比这更复杂,但它提供了我正在做的事情的外壳。
jQuery 工作正常,但是,我将如何包含动画?
PS:试图让 jsFiddle 运行,但他们的服务器可能已关闭 atm ??!!?