我有一个表,我想用JQuery使行可拖动(用户可以选择一行并将行拖到我的UI上的另一个元素,将行的数据放入该元素)。我将表的每一行(“tr”元素)设置为“draggableRow”类,并且我已经为所有这些设置了适当的功能,以便为该类的元素工作(例如,为该类设置一个可拖动的函数)。 / p>
但是,我不希望用户能够从第一列拖动(即行中的第一个“td”)。一种选择是使“td”元素可拖动,但由于填充问题,这不会感觉很清晰。表格行中有死区,不可拖动。
因此,另一种方法是将拖动保持在“tr”上,但以某种方式弄清楚用户点击了行中的第一个“td”(例如,通过$(event.target).closest(“td”) )在辅助函数中)然后停止拖动。但是,我不知道如何阻止阻力。
任何帮助将不胜感激。最好的方法是找到一些方法来使整个行除了第一个“td”可拖动(包括表格单元格之间的填充)。感谢。
答案 0 :(得分:1)
“取消”选项似乎是您正在寻找的内容:http://api.jqueryui.com/draggable/#option-cancel
防止从指定元素开始拖动。
$('tr').draggable({
helper: 'clone',
cancel: 'td:first-child'
});
编辑:我给你举了一个例子jsfiddle:http://jsfiddle.net/Emsxg/1/