如何使jquery可排序项仅在单击该项后才可拖动?

如何使jquery可排序项仅在单击该项后才可拖动?,jquery,draggable,jquery-ui-sortable,Jquery,Draggable,Jquery Ui Sortable,我有一个可排序的菜单可以正常工作,但是我在每个可排序的项目上都有一个单击事件,现在如果拖动和排序菜单,那么单击事件将同时触发,我想要的是,只能在我单击它之后拖动可排序的项目,就像只能拖动活动项目一样 如何执行此操作?您需要在触发单击事件后启用拖动: $('#target').click(function() { $('#target').draggable(); }); 有几个想法: 取消拖动,除非给定元素是“选定”元素: (function() { var selectedTarge

我有一个可排序的菜单可以正常工作,但是我在每个可排序的项目上都有一个单击事件,现在如果拖动和排序菜单,那么单击事件将同时触发,我想要的是,只能在我单击它之后拖动可排序的项目,就像只能拖动活动项目一样


如何执行此操作?

您需要在触发单击事件后启用拖动:

$('#target').click(function() {
  $('#target').draggable();
});
有几个想法:

取消拖动,除非给定元素是“选定”元素:

(function() {
  var selectedTarget = null;
  $('.target').draggable({ drag: function(event, ui) { 
    if(this != selectedTarget) return false; 
  });
  $('.target').click(function() { selectedTarget = this; });
});
稍微延迟拖动开始(有足够的时间让单击事件传播):


这两种方法都是基于所有可排序对象都有
target
class

的基础上工作的,您能详细说明一下吗?也许会显示一些代码?
(function() {
  $( ".target" ).draggable({ delay: 500 });
});