【问题标题】:With Jquery ui's draggable, how do you change the revert on stop?使用可拖动的 Jquery ui,如何在停止时更改反转?
【发布时间】:2011-10-26 18:11:00
【问题描述】:

我想知道你是如何从 stop 事件更改在 Jquery ui 中拖动的东西的“revert”属性的。

    $('.things').draggable({ 
        revert: "true",
        stop: function(event, ui){
                        //if something then set revert to false
        }
    });

我尝试了一些方法,但似乎无法正常工作。

干杯。

【问题讨论】:

    标签: jquery jquery-ui events draggable jquery-ui-draggable


    【解决方案1】:

    stop 事件发生得太晚,revert 选项的更改不会影响当前的拖动操作。可拖动对象仍会还原,即使在下一次拖动中不再还原。

    您可能希望改为绑定到 drag 事件:

    $('.things').draggable({ 
        revert: true,
        drag: function(event, ui) {
            if (/* something */) {
                $(this).draggable("option", "revert", false);
            }
        }
    });
    

    【讨论】:

    • 这行得通,但我不想在拖拽上附加一些大的处理,它在 IE 和较旧的 FF 中大大减慢了它的速度。在拖动的生命周期中是否还有其他任何东西可以附加到,预先停止的东西。
    • 唉,据我所知没有。您能否详细说明您为确定something 而执行的繁重处理?也许有更好的方法来实现您想要实现的目标。
    【解决方案2】:

    我意识到自从提出这个问题以来已经有一段时间了,但是在 JQuery UI 1.10 及更高版本中,draggable 现在支持将函数作为 revert 的值。如果该值返回 true,则位置会恢复,否则不会。

    $('.things').draggable({ 
        revert: function() {
            if(condition_is_met()) {
                 return false; // Don't revert
            } else {
                 return true;
            }
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-03
      • 1970-01-01
      • 2011-06-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多