我想有3个复选框,我们可以称它们为checkbox1,checkbox2和checkbox3。appendTo与排序,也许appendTo不是正确的使用?
<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从“起点”到“终点”把他们重新安置。它工作正常。问题是,我希望他们保持按时间顺序(他们开始的顺序)。
SO ...如果我检查“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>
我已经添加在原来的职位中使用的脚本。我理解这个概念,但这是否意味着我必须为每一个单词添加“appendTo”语句?现在只有3个,如果有50个呢? – livinzlife
更新了我的答案 - 只需要设置一些动态。 – cmpolis
AHA完美!这完美的技巧! – livinzlife