jQuery UI第一次丢弃不起作用

时间:2011-03-04 15:41:22

标签: javascript jquery jquery-ui

为什么这个jQuery第一次丢弃时不会掉线?

$(".drag").draggable({
  revert: 'invalid',
  drag: function(event, ui) {
    $(this).addClass('valid');
  }
});
$("#droppable").droppable({
  accept: '.valid',
  drop: function(event, ui) {
    $('#droppable').text('dropped');
  }
});

请参阅此jsfiddle,其中显示第一次时间将每个绿色方块放入其将要还原的红色方块内。

2 个答案:

答案 0 :(得分:3)

droppable只接受有效的类div,并且在你的拖动开始时你的grenn div没有这个类。拖动功能会添加它,但是对于第一次掉落来说太迟了,但它仍然存在,因此后续的拖拽会起作用。

解决方案:确保在第一次拖动事件发生之前绿色div有.valid

答案 1 :(得分:2)

它不起作用,因为drop元素在droppable触发drop事件之后才会出现'valid'类。解决此问题的方法是将drag事件更改为drag元素中的start事件,因此在触发drop事件之前会将“valid”类添加到元素中。