jQuery UI.Sortable:一旦延迟完成就触发的任何事件

时间:2014-04-07 13:16:10

标签: jquery-ui jquery-ui-sortable

在Jquery UI.Sortable中,我们可以指定延迟来开始排序。

我想知道,如果延迟(即ms)完成后有任何事件被触发。

我尝试了API列表中的所有事件,启动,激活等,但是当我开始移动项目时会触发所有事件。

我想在n毫秒内持有(点击并暂停)该项目时触发一个事件。

要求如下:

set delay of 100ms
click & hold using mouse for less than 100ms, we can't move // That's working fine.
click & hold using mouse for greater than equal to 100ms, we can move. but until we can drag user doesn't know whether the selected item can able to move or not. 

因此,在延迟完成后,需要对所选项目的推断可以查看与其他项目不同的内容。

请提出任何进行的想法。

1 个答案:

答案 0 :(得分:4)

我认为这是理解的问题。

  

delay -

     

定义排序何时开始的时间(以毫秒为单位)。 点击元素时,添加延迟有助于防止不必要的拖延

项目始终可拖动,只有在开始拖动后才会触发延迟。如果单击并按住鼠标,它就不会启动,所以没有用来指示用户一旦点击并按住鼠标就可以拖动它,因为它什么都不做。

开始拖动后,延迟时间设置为n毫秒 - 并且在延迟后立即触发start事件。您可以使用start事件通知用户该项目现在正在拖动。

例如

<div class="sortable">
  <div class="grabbable"></div>
  <div class="grabbable"></div>
</div>

$('.sortable').sortable({
 delay: 500,
 start: function (e, ui) { // will be triggered after 500ms
    ui.helper.addClass('highlight');
 },
 beforeStop: function (e, ui) {
    ui.helper.removeClass('highlight');
 }
});

Demo