我想有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