實現table中tr、td的可移動效果

先上代碼:

<!DOCTYPE html>
<!-- saved from url=(0046)http://www.testbj.com/admin.php/admin/category -->
<html style="min-height: 875px;"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <body class="skin-blue  pace-done" style="min-height: 875px;">
                    
<div class="row">
    <div class="col-xs-12">
        <div class="box">
            <div class="box-body">
                <table class="table table-striped table-bordered mt24">
                    <caption></caption>
                    <thead>
                        <tr>
                            <th rowspan="$rowspan" style="vertical-align: middle;text-align: center;">分類</th>
                            <th rowspan="$rowspan" style="vertical-align: middle;text-align: center;">0</th>
                            <th rowspan="$rowspan" style="vertical-align: middle;text-align: center;">1</th>
                            <th rowspan="$rowspan" style="vertical-align: middle;text-align: center;">2</th>
                            <th rowspan="$rowspan" style="vertical-align: middle;text-align: center;">3</th>
                        </tr>
                    </thead>
                    <tbody class="tcontent ui-sortable">
                        <tr class="rcontent" name="11" value="2" type="0">
                            <td rowspan="$rowspan" class="update tdsort0" name="2" style="vertical-align: middle;text-align: center;"><div>
                            分類一</div></td>
                            <td rowspan="$rowspan" class="update tdsort1" attr="2" name="6" value="10" style="vertical-align: middle;text-align: center;"><div>張三1</div>
                            </td>
                            <td rowspan="$rowspan" class="update tdsort1" attr="2" name="4" value="9" style="vertical-align: middle;text-align: center;"><div>李四1</div>
                            </td>
                            <td rowspan="$rowspan" class="update tdsort1" attr="2" name="5" value="8" style="vertical-align: middle;text-align: center;"><div>王五1</div>
                            </td>
                            <td rowspan="$rowspan" class="update tdsort1" attr="2" name="9" value="7" style="vertical-align: middle;text-align: center;"><div>趙六1</div>
                            </td>
                        </tr>
                        <tr class="rcontent" name="10" value="14" type="0">
                            <td rowspan="$rowspan" class="update tdsort0" name="14" style="vertical-align: middle;text-align: center;"><div>
                            分類二</div>
                            </td>
                             <td rowspan="$rowspan" class="update tdsort1" attr="14" name="16" value="11" style="vertical-align: middle;text-align: center;"><div>張三2</div>
                            </td>
                            <td rowspan="$rowspan" class="update tdsort1" attr="14" name="17" value="10" style="vertical-align: middle;text-align: center;"><div>李四2</div>
                            </td>
                            <td rowspan="$rowspan" class="update tdsort1" attr="14" name="18" value="9" style="vertical-align: middle;text-align: center;"><div>王五2</div>
                            </td>
                            <td rowspan="$rowspan" class="update tdsort1" attr="14" name="19" value="8" style="vertical-align: middle;text-align: center;"><div>趙六2</div>
                            </td>
                            
                        </tr>
                        <tr class="rcontent" name="9" value="27" type="0">
                            <td rowspan="$rowspan" class="update tdsort0" name="27" style="vertical-align: middle;text-align: center;"><div>
                            分類三</div>
                            </td>
                            <td rowspan="$rowspan" class="update tdsort1" attr="27" name="29" value="9" style="vertical-align: middle;text-align: center;"><div>張三3</div>
                            </td>
                            <td rowspan="$rowspan" class="update tdsort1" attr="27" name="30" value="8" style="vertical-align: middle;text-align: center;"><div>李四3</div>
                            </td>
                            <td rowspan="$rowspan" class="update tdsort1" attr="27" name="31" value="7" style="vertical-align: middle;text-align: center;"><div>王五3</div>
                            </td>
                            <td rowspan="$rowspan" class="update tdsort1" attr="27" name="32" value="6" style="vertical-align: middle;text-align: center;"><div>趙六3</div>
                            </td>
                        </tr>
                        <tr class="rcontent" name="8" value="38" type="0">
                            <td rowspan="$rowspan" class="update tdsort0" name="38" style="vertical-align: middle;text-align: center;"><div>
                            分類四</div>
                            </td>
                            <td rowspan="$rowspan" class="update tdsort1" attr="38" name="40" value="7" style="vertical-align: middle;text-align: center;"><div>張三4</div>
                            </td>
                            <td rowspan="$rowspan" class="update tdsort1" attr="38" name="41" value="6" style="vertical-align: middle;text-align: center;"><div>李四4</div>
                            </td>
                            <td rowspan="$rowspan" class="update tdsort1" attr="38" name="42" value="5" style="vertical-align: middle;text-align: center;"><div>王五4</div>
                            </td>
                            <td rowspan="$rowspan" class="update tdsort1" attr="38" name="43" value="4" style="vertical-align: middle;text-align: center;"><div>趙六4</div>
                            </td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>
    </div>
</div>

<!-- jQuery 2.0.2 -->
<script src="./jquery.min.js" type="text/javascript"></script>
<!-- jQuery UI 1.10.3 -->
<script src="./jquery-ui-1.10.3.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {

    $('.tdsort1').mousedown(function(event) {
        $(this).parent().sortable({cancel:function() {
        }});

        $('.rcontent').sortable({
            axis   : 'x',
            items: "td", //只是tr可以拖動
            revert : true,
            update : function(event, ui) {
                // ==== 一系列操作 ====
                // alert('移動成功!');
                // window.location.reload();
            }
        })
    })

    $('.tdsort1').mouseup(function() {
        $(".tcontent").sortable("enable");
    })

    $(".tcontent").sortable({
        cursor: "move",
        items: "tr", //只是tr可以拖動
        opacity: 0.6, //拖動時,透明度爲0.6
        revert: true, //釋放時,增加動畫
        update: function(event, ui) { //更新排序之後
            // ==== 一系列操作 ====
            // alert('移動成功!');
            // window.location.reload();
        }
    });
    $(".tcontent").disableSelection();
})

</script>
</body></html>


沒什麼樣式,將就着看,知道原理就好

該效果主要是使用jQueryUI這個插件來實現的,那必須的,你需要先下載<script src="./jquery-ui-1.10.3.min.js" type="text/javascript"></script>這個東西

具體的實現看上面js代碼


測試過的朋友可能會有這樣的疑問:

你這個不行啊,一旦移動td後,tr就移動不了了


我們看會代碼,tr的移動和td的移動是兩個動作,沒完成一個動作,我們需要恢復動作觸發前的狀態,這樣,下個動作的操作就不會受上一個動作的影響

所以答案是,當我們觸發一個動作,完成一系列操作後,然後給頁面刷新一下,這樣,我們觸發下一個動作是完全不會被影響的

我們做這個移動效果,說白了就是想換個方式進行排序,這樣就行了


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章