使用可拖动的 Jquery ui,如何在停止时更改反转?
Posted
技术标签:
【中文标题】使用可拖动的 Jquery ui,如何在停止时更改反转?【英文标题】:With Jquery ui's draggable, how do you change the revert on stop? 【发布时间】: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
);
我尝试了一些方法,但似乎无法正常工作。
干杯。
【问题讨论】:
【参考方案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;
);
【讨论】:
以上是关于使用可拖动的 Jquery ui,如何在停止时更改反转?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 jquery ui 可拖动突出显示悬停时的可放置区域