如何捕捉拖动事件的任何结束?

How to catch any end of a drag event?

问题:有一个元素设置为 draggable。需要捕获用户完成拖动元素以将功能附加到它的所有情况。到目前为止,我使用 mouseleavemouseup 但仍然遗漏了一些情况。 这是代码:

handleMaxEl
    .css('left', scope.max * rangeEl.width() / valuesNumber)
    .draggable({
        containment: '.range-holder',
        axis: 'x'
    })
    .on('drag', handlesHandler)
    .on('mouseup mounseleave', positionHandles);

有什么帮助吗?

您可以使用 stop 回调 draggable ,并在拖动停止时触发。

$( ".selector" ).draggable({
stop: function( event, ui ) {}
});

查看更多here.

 $( "#draggable" ).draggable({
      start: function() {
        counts[ 0 ]++;
        updateCounterStatus( $start_counter, counts[ 0 ] );
      },
      drag: function() {
        counts[ 1 ]++;
        updateCounterStatus( $drag_counter, counts[ 1 ] );
      },
      stop: function() {
        counts[ 2 ]++;
        updateCounterStatus( $stop_counter, counts[ 2 ] );
      }
    });

有拖动、启动和停止事件http://jqueryui.com/draggable/#events