0

我有一个可排序的菜单工作正常,但我在每个可排序的项目上也有一个点击事件,现在如果拖动并排序菜单,点击事件会同时触发,我想要的是只能在我点击后拖动可排序的项目它,有点像只能拖动活动项目。

我怎样才能做到这一点?

4

2 回答 2

0

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

$('#target').click(function() {
  $('#target').draggable();
});
于 2013-09-05T05:56:26.923 回答
0

几个想法:

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

(function() {
  var selectedTarget = null;
  $('.target').draggable({ drag: function(event, ui) { 
    if(this != selectedTarget) return false; 
  });
  $('.target').click(function() { selectedTarget = this; });
});

稍微延迟拖动开始(有足够的时间让点击事件传播):

(function() {
  $( ".target" ).draggable({ delay: 500 });
});

这两个工作的基础是所有可排序的对象都具有target

于 2013-11-01T12:14:12.353 回答