Script.aculo.us Drag'n'Drop - Revert onEnd condition

时间:2012-01-13 15:29:44

标签: javascript prototypejs scriptaculous

如果条件返回false,我正在尝试恢复一个可拖动的。例如,我想做以下事情:

new Draggable('myelement', {
    onStart: function() {
      // do something
    },
    onEnd: function() {
      var condition = getConditionVal();
      if (!condition) revert to original position
      else {
         // do something else
      }
    }
});

这可能吗?由于可放置区域动态变化,因此不确定“droppables”是否适用于此情况。

2 个答案:

答案 0 :(得分:3)

Scriptaculous拖放旨在轻松添加各种花哨的东西。 当然,您可以随时编辑还原选项。

要更改可拖动的revert-option的值,只需重置revert-option:

var myDraggable = new Draggable('myelement', {
    onStart: function() {
      // do something
    },
    onEnd: function() {
      var condition = getConditionVal();
      if (!condition){
          myDraggable.options.revert = true;
      }
      else {
          myDraggable.options.revert = false;
          // do something else
      }
    };
});

Scriptaculous does the revert right after the onEnd event call, 这使我们有可能在执行之前改变它。

答案 1 :(得分:0)

Scriptaculous的拖放代码并非设计为具有条件还原。您可以恢复或不恢复。遗憾的是,这就是全部。

此功能已被多次请求,但脚本/原型多年来已逐渐流行,因此这个功能的添加值得怀疑。