使用jQuery UI可以与HTML表进行排序

Sam*_*ndy 74 jquery jquery-ui html-table jquery-ui-sortable

我想在HTML表格中输出数据库中的一些数据,我希望用户能够重新排序表格行.为实现这一点,我使用jQuery UI进行排序,因此:

<script>
    $(function() {
        $( "#sortable" ).sortable();
        $( "#sortable" ).disableSelection();
    });
    </script>
<?php 
 while($row = mysql_fetch_assoc($co_authors)) {
                    echo "<tr id='sortable'><td>{$row['author_email']}</td>
                         <td>{$row['coauthor_level']}</td>";
                         <td><button class='remove' id='remove' name='remove' email="<?php echo $row['author_email'] ?>"
                            paper="<?php echo $row['paper_id'] ?>">Remove</button></td>
                         </tr>";
                }
?>
Run Code Online (Sandbox Code Playgroud)

问题是,当我拖动一个表时tr,只会td被拖动.此外,最重要的是,只有第一行是可拖动的:效果不会应用于其他行.我怎么解决这个问题?

TJ *_*oll 180

你可以叫sortable<tbody>,而不是对个人行.

<table>
    <tbody>
        <tr> 
            <td>1</td>
            <td>2</td>
        </tr>
        <tr>
            <td>3</td>
            <td>4</td> 
        </tr>
        <tr>
            <td>5</td>
            <td>6</td>
        </tr>  
    </tbody>    
</table>?

<script>
    $('tbody').sortable();
</script> 
Run Code Online (Sandbox Code Playgroud)

$(function() {
  $( "tbody" ).sortable();
});
Run Code Online (Sandbox Code Playgroud)
 
table {
    border-spacing: collapse;
    border-spacing: 0;
}
td {
    width: 50px;
    height: 25px;
    border: 1px solid black;
}
Run Code Online (Sandbox Code Playgroud)
 

<link href="//code.jquery.com/ui/1.11.1/themes/smoothness/jquery-ui.css" rel="stylesheet">
<script src="//code.jquery.com/jquery-1.11.1.js"></script>
<script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script>

<table>
    <tbody>
        <tr>
            <td>1</td>
            <td>2</td>
        </tr>
        <tr>
            <td>3</td>
            <td>4</td>
        </tr>
        <tr> 
            <td>5</td>
            <td>6</td>
        </tr>
        <tr>
            <td>7</td>
            <td>8</td>
        </tr>
        <tr>
            <td>9</td> 
            <td>10</td>
        </tr>  
    </tbody>    
</table>
Run Code Online (Sandbox Code Playgroud)

  • 代表[user236766]发布(http://stackoverflow.com/users/2742476/user236766):您可能想要将最后一个`<tbody>`更改为`</ tbody>`;) (5认同)
  • 谢谢!! 我很害怕我必须重做整个设计,我只有一个小时让它工作,谢谢堆! (2认同)