0

我有一个表,我想用 JQuery 使行可拖动(用户可以选择一行并将行拖到我的 UI 上的另一个元素,这会将行的数据放到该元素中)。我将表格的每一行(“tr”元素)设置为“draggableRow”类,并为所有这些创建了适当的功能,以适用于该类的元素(例如,为该类设置一个可拖动函数)。

但是,我不希望用户能够从第一列(即行中的第一个“td”)拖动。一种选择是使“td”元素可拖动,但由于填充问题,这感觉不那么清晰。表格行中有不可拖动的死区。

因此,一种替代方法是将可拖动的“tr”保持在“tr”上,但以某种方式确定用户单击了行中的第一个“td”(例如,通过 $(event.target).closest("td")辅助函数),然后停止拖动。但是,我不确定如何停止拖动。

任何帮助,将不胜感激。最好的办法是找到某种方法使除第一个“td”之外的整行可拖动(包括表格单元格之间的填充)。谢谢。

4

1 回答 1

1

“取消”选项似乎是您正在寻找的:http ://api.jqueryui.com/draggable/#option-cancel

防止从指定元素开始拖动。

  $('tr').draggable({
        helper: 'clone',
        cancel: 'td:first-child'
    });

编辑:我给你做了一个例子 jsfiddle:http: //jsfiddle.net/Emsxg/1/

于 2013-01-24T17:08:42.137 回答