为什么我的jqueryui可排序表不起作用?

时间:2019-10-21 09:43:29

标签: jquery-ui jquery-ui-sortable

我不明白为什么我无法对表格行进行排序。我可以对列表进行排序,但是表有问题。 这是我的桌子:

<table class="table table-sm" id="tilbehor_table"> 
  <tbody>
  <tr>
     <th>Navn</th>
     <th>Pris</th>
     <th></th>
  </tr>
  <tr id="tilline_1">
     <td>Nina nattbord Hvitmalt</td>
     <td>1195</td>
     <td>
        <button type="button" class="btn btn-outline-secondary btn-sm tilsorthandle" title="Endre rekkefølge"><span data-feather="menu"></span></button>
     </td>
  </tr>
  <tr id="tilline_2">
     <td>Odel gavl&nbsp;rutet 150 cm Skumring blå</td>
     <td>3995</td>
     <td>
        <button type="button" class="btn btn-outline-secondary btn-sm tilsorthandle"  title="Endre rekkefølge"><span data-feather="menu"></span></button>
     </td>
  </tr>
  </tbody>
  </table>

这是我的JS:

$('#tilbehor_table tbody').sortable({ axis: "y", handle: ".tilsorthandle" });

运行js时,我可以看到可排序的类已添加到表中,但是我无法使用处理程序来单击和拖动行。

1 个答案:

答案 0 :(得分:1)

在sortable中有一个cancel选项,默认情况下设置为"input,textarea,button,select,option"。根据文档,cancel选项执行以下操作。

 Prevents sorting if you start on elements matching the selector.

因此,如果使用这些默认选择器进行排序,则可以防止排序。将cancel选项的值设置为空字符串即可。

   $('#tilbehor_table tbody').sortable({ axis: "y", handle: ".tilsorthandle", cancel: ''});