jQueryUI的不守“啪”的元素的内部“状态”,但你要努力一点点地得到它。
您将要为stop事件定义一个事件处理程序(当可拖动对象停止拖动时调用该事件处理程序)。
阵列称为snapElements保持在部件里面的数据,它看起来是这样的:
[
{
height: 102,
item: { /* DOM element */ },
left: 10,
snapping: false,
top: 10,
width: 102
}, ...
]
你真正寻找这里是snapping
财产。捕捉将会告诉你该项目目前是否为“snapping
”为可拖动对象。
snapElements
阵列每更新一次drag
事件,所以它总是处于最新的drag
处理程序。从那里,我们只需要使用data()从关联元素中获取draggable
小部件实例。
有了这个阵列中的一点,我们可以这样写代码,以确定枯萎它捕捉到目标与否:
$("#draggable2").draggable({
snap: ".ui-widget-header",
snapMode: "inner",
revert: true
stop: function(event, ui) {
var draggable = $(this).data("draggable");
$.each(draggable.snapElements, function(index, element) {
if (element.snapping) {
//i can't quit figure out how to stop the reverting from here, but here's you condition.
console.log("Snapped !!");
}
});
},
});
哦,我发现这个在线希望这是有帮助的。 Revert Function callback.
* if * snaps * * when * it snaps。这是两个非常不同的概念。 – rochal 2013-03-11 21:56:42
我有一个数组,所以我想如果我的物品在他的四个边框上折断,它不会恢复:)对不起,我的英语不好:/ – Alkatell 2013-03-11 21:59:33
如果它对齐,两个元素的边缘将在同一平面上。检查一下。 – 2013-03-21 01:42:54