我想要 3 个复选框,我们称它们为 checkbox1、checkbox2 和 checkbox3。
<form id="test">
<div id="startingpoint">
<div id="clickdiv"><input type="checkbox" id="checkbox1" value="1" />checkbox1</div>
<div id="clickdiv"><input type="checkbox" id="checkbox2" value="1" />checkbox2</div>
<div id="clickdiv"><input type="checkbox" id="checkbox3" value="1" />checkbox3</div>
</div>
<div id="endingpoint"></div>
</form>
我对它们进行了设置,以便在选中复选框时,它使用 appendTo 将它们从“起点”重新定位到“终点”。它工作正常。问题是,我希望他们保持时间顺序(他们开始的顺序)。
所以...如果我检查了“checkbox3”然后是“checkbox1”,我希望结果是这样的:
<form id="test">
<div id="startingpoint">
<div id="clickdiv"><input type="checkbox" id="checkbox2" value="1" />checkbox2</div>
</div>
<div id="endingpoint">
<div id="clickdiv"><input type="checkbox" id="checkbox1" value="1" />checkbox1</div>
<div id="clickdiv"><input type="checkbox" id="checkbox3" value="1" />checkbox3</div>
</div>
</form>
但是......通过 appendTo 的工作方式,我得到了这个(注意“checkbox3”在“checkbox1”之上)
<form id="test">
<div id="startingpoint">
<div id="clickdiv"><input type="checkbox" id="checkbox2" value="1" />checkbox2</div>
</div>
<div id="endingpoint">
<div id="clickdiv"><input type="checkbox" id="checkbox3" value="1" />checkbox3</div>
<div id="clickdiv"><input type="checkbox" id="checkbox1" value="1" />checkbox1</div>
</div>
</form>
我怎样才能让它们按时间顺序排列,特别是它们开始的顺序。也许 appendTo 不是解决方案?
为回应评论添加:
<script type="text/javascript">
$(function(){
$('#test input').attr('checked', false);
$('#test input').click(function(){
if (this.checked) {
$(this).closest('div').hide().appendTo("#endingpoint").fadeIn(1000)
}
else {
$(this).closest('div').hide().appendTo("#startingpoint").fadeIn(1000)
}
});
});
</script>