Jquery ui 在jQuery UI中恢复或执行函数

Jquery ui 在jQuery UI中恢复或执行函数,jquery-ui,undefined,draggable,revert,Jquery Ui,Undefined,Draggable,Revert,我希望将元素恢复到它的原始位置,如果它没有被拖动超过一定距离的话。 如果元素在X轴上被拖动的距离超过了设定的距离,我希望执行一个函数,将被拖动的元素滑出视口并滑回视口。我让它跟踪距离,但现在不知何故,如果不满足条件,它将不会返回函数为真或假。。。我得到一个未定义D的错误。有人知道会出什么问题吗 我尝试过不同的解决方案,但两种方案都无法奏效,也无法在网上找到答案 这就是我迄今为止所做的: 你做得太过分了。测量单轴上行驶的距离非常简单: revert: function() { var or

我希望将元素恢复到它的原始位置,如果它没有被拖动超过一定距离的话。 如果元素在X轴上被拖动的距离超过了设定的距离,我希望执行一个函数,将被拖动的元素滑出视口并滑回视口。我让它跟踪距离,但现在不知何故,如果不满足条件,它将不会返回函数为真或假。。。我得到一个未定义D的错误。有人知道会出什么问题吗

我尝试过不同的解决方案,但两种方案都无法奏效,也无法在网上找到答案

这就是我迄今为止所做的:


你做得太过分了。测量单轴上行驶的距离非常简单:

revert: function() {
    var orig = $(this).data("uiDraggable").originalPosition.left;
    var curr = $(this).data("uiDraggable").position.left;
    return curr - orig > 100;
}
看一个工作

请注意,
data
对象的名称对于不同版本的jQueryUI是不同的。对于您在小提琴中选择的一个,它是
可拖动的
,对于较新的一个,它是
可拖动的


您的代码中还有许多其他错误,我在小提琴中对此进行了注释:

  • 实际上,您还没有在
    function(){}
  • 事件绑定器和异步回调不像您在
    mousedown
    mouseup
    中所假设的那样工作。
    d>100
    条件中的
    d
    变量将始终
    未定义的
  • 在事件处理程序中使用选择器(
    “.video”
    )通常是不好的,因为您可以使用
    this
    event.currentTarget
    获取相同的对象
  • 不要以逗号结束对象中的最后一个属性。Internet explorer随机决定讨厌它
总结?代码审查是你的朋友,别忘了他!:)

revert: function() {
    var orig = $(this).data("uiDraggable").originalPosition.left;
    var curr = $(this).data("uiDraggable").position.left;
    return curr - orig > 100;
}