jQuery UI の Sortable プラグインを使い、格子(グリッド)状に並べたリストを、ドラッグ&ドロップで並べ替えられるようにする方法。
実装例(サンプル)
- 項目 1
- 項目 2
- 項目 3
- 項目 4
- 項目 5
- 項目 6
- 項目 7
- 項目 8
- 項目 9
実装例の動作について
「項目 1」をドラッグして、中央へ動かし、「項目 5」の上に持ってくると、「項目 5」が左へ移動し、「項目 5」と「項目 6」の間にスペースができる。そのスペースへドロップすると、「項目 1」が中央へ移動し、中央の行は「項目 5」「項目 1」「項目 6」…の順番になる。上の行は「項目 2」「項目 3」「項目 4」…の順番になる。下の行は「項目 7」「項目 8」「項目 9」…の順番のまま。
実装例のソースコード
読み込み
読み込み方は、2種類ある。パスは、それぞれ、アップロードした場所を指定する。
まとめて読み込む場合
<link rel="stylesheet" href="themes/base/jquery.ui.all.css">
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript" src="ui/jquery-ui-1.8.12.custom.min.js"></script>
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript" src="ui/jquery-ui-1.8.12.custom.min.js"></script>
個別に読み込む場合
<link rel="stylesheet" href="themes/base/jquery.ui.all.css">
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript" src="ui/jquery.ui.core.js"></script>
<script type="text/javascript" src="ui/jquery.ui.widget.js"></script>
<script type="text/javascript" src="ui/jquery.ui.mouse.js"></script>
<script type="text/javascript" src="ui/jquery.ui.sortable.js"></script>
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript" src="ui/jquery.ui.core.js"></script>
<script type="text/javascript" src="ui/jquery.ui.widget.js"></script>
<script type="text/javascript" src="ui/jquery.ui.mouse.js"></script>
<script type="text/javascript" src="ui/jquery.ui.sortable.js"></script>
JavaScript
<script>
<!--
$( function() {
$( '#jquery-ui-sortable' ) . sortable();
$( '#jquery-ui-sortable' ) . disableSelection();
} );
// -->
</script>
<!--
$( function() {
$( '#jquery-ui-sortable' ) . sortable();
$( '#jquery-ui-sortable' ) . disableSelection();
} );
// -->
</script>
CSS
<style>
<!--
#jquery-ui-sortable {
list-style-type: none;
margin: 0;
padding: 0;
width: 312px;
}
#jquery-ui-sortable li {
float: left;
margin: 1px;
padding: 30px 0px 0px 0px;
font-size: 15px;
font-weight: bold;
cursor: move;
width: 100px;
height: 70px;
text-align: center;
}
-->
</style>
<!--
#jquery-ui-sortable {
list-style-type: none;
margin: 0;
padding: 0;
width: 312px;
}
#jquery-ui-sortable li {
float: left;
margin: 1px;
padding: 30px 0px 0px 0px;
font-size: 15px;
font-weight: bold;
cursor: move;
width: 100px;
height: 70px;
text-align: center;
}
-->
</style>
HTML
<ul id="jquery-ui-sortable">
<li class="ui-state-default">項目 1</li>
<li class="ui-state-default">項目 2</li>
<li class="ui-state-default">項目 3</li>
<li class="ui-state-default">項目 4</li>
<li class="ui-state-default">項目 5</li>
<li class="ui-state-default">項目 6</li>
<li class="ui-state-default">項目 7</li>
<li class="ui-state-default">項目 8</li>
<li class="ui-state-default">項目 9</li>
</ul>
<div style="clear: both;"></div>
<li class="ui-state-default">項目 1</li>
<li class="ui-state-default">項目 2</li>
<li class="ui-state-default">項目 3</li>
<li class="ui-state-default">項目 4</li>
<li class="ui-state-default">項目 5</li>
<li class="ui-state-default">項目 6</li>
<li class="ui-state-default">項目 7</li>
<li class="ui-state-default">項目 8</li>
<li class="ui-state-default">項目 9</li>
</ul>
<div style="clear: both;"></div>